优化更新
This commit is contained in:
@@ -44,7 +44,7 @@ mysqlbinlog --start-datetime="2026-09-05 00:00:00" \
|
||||
|
||||
:::tip binlog 配置
|
||||
确保 MySQL 配置中启用了 binlog:
|
||||
```ini
|
||||
```bash
|
||||
[mysqld]
|
||||
server-id = 1
|
||||
log-bin = mysql-bin
|
||||
@@ -76,10 +76,10 @@ Redis 用于缓存和 JWT token 黑名单,数据可从数据库重建。建议
|
||||
|
||||
```bash
|
||||
# 打包上传目录
|
||||
tar -czf uploads_$(date +%Y%m%d).tar.gz /data/apps/DjangoAdmin_Django_EleVue/public/uploads/
|
||||
tar -czf uploads_$(date +%Y%m%d).tar.gz /data/apps/DjangoAdmin_Django_AntdVue/public/uploads/
|
||||
|
||||
# 使用 rsync 增量同步到远程
|
||||
rsync -avz --delete /data/apps/DjangoAdmin_Django_EleVue/public/uploads/ backup@10.0.2.100:/data/backup/uploads/
|
||||
rsync -avz --delete /data/apps/DjangoAdmin_Django_AntdVue/public/uploads/ backup@10.0.2.100:/data/backup/uploads/
|
||||
```
|
||||
|
||||
## 自动化备份
|
||||
@@ -110,7 +110,7 @@ cp /var/lib/redis/dump.rdb ${BACKUP_DIR}/redis/redis_${DATE}.rdb
|
||||
|
||||
# 上传文件备份
|
||||
tar -czf ${BACKUP_DIR}/uploads/uploads_${DATE}.tar.gz \
|
||||
/data/apps/DjangoAdmin_Django_EleVue/public/uploads/
|
||||
/data/apps/DjangoAdmin_Django_AntdVue/public/uploads/
|
||||
|
||||
# 清理过期备份
|
||||
find ${BACKUP_DIR} -type f -mtime +${RETENTION_DAYS} -delete
|
||||
|
||||
@@ -167,7 +167,7 @@ stages:
|
||||
|
||||
### pytest 配置
|
||||
|
||||
```ini
|
||||
```bash
|
||||
# pytest.ini
|
||||
[pytest]
|
||||
DJANGO_SETTINGS_MODULE = application.settings
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
:::tip 迁移工具链
|
||||
- **结构迁移**:Django 内置迁移系统(`makemigrations` + `migrate`)
|
||||
- **字段注释**:Django 4.1+ 通过 `db_comment` 参数自动添加数据库字段注释
|
||||
- **自定义命令**:`python manage.py add_full_comments` 回填数据库字段注释
|
||||
:::
|
||||
|
||||
## 全新安装初始化
|
||||
@@ -99,7 +98,7 @@ python manage.py migrate --fake example
|
||||
|
||||
## 字段注释管理
|
||||
|
||||
Django 4.1+ 支持通过 `db_comment` 参数为数据库字段添加注释。项目中的模型已自动生成 `db_comment`:
|
||||
Django 4.1+ 支持通过 `db_comment` 参数为数据库字段添加注释。项目中的模型已自动生成 `db_comment`,在执行 `migrate` 时会自动同步到数据库:
|
||||
|
||||
```python
|
||||
class Example(BaseModel):
|
||||
@@ -110,16 +109,6 @@ class Example(BaseModel):
|
||||
)
|
||||
```
|
||||
|
||||
### 回填字段注释
|
||||
|
||||
对于已有数据库,可使用自定义命令回填字段注释:
|
||||
|
||||
```bash
|
||||
python manage.py add_full_comments
|
||||
```
|
||||
|
||||
该命令会遍历所有模型,为缺少注释的字段补充 `db_comment`。
|
||||
|
||||
## 迁移文件结构
|
||||
|
||||
每个应用的迁移文件位于 `application/{app_name}/migrations/` 目录:
|
||||
@@ -150,7 +139,6 @@ application/example/
|
||||
| 回滚指定应用 | `python manage.py migrate <app> zero` |
|
||||
| 查看迁移状态 | `python manage.py showmigrations` |
|
||||
| 查看迁移 SQL | `python manage.py sqlmigrate <app> <migration>` |
|
||||
| 回填字段注释 | `python manage.py add_full_comments` |
|
||||
|
||||
## 常见问题与排错
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ server {
|
||||
gzip_vary on;
|
||||
|
||||
# 前端静态资源
|
||||
root /data/apps/DjangoAdmin_Django_EleVue/ui/dist;
|
||||
root /data/apps/DjangoAdmin_Django_AntdVue/ui/dist;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
@@ -70,14 +70,14 @@ server {
|
||||
|
||||
# Django 静态文件
|
||||
location /static/ {
|
||||
alias /data/apps/DjangoAdmin_Django_EleVue/public/static/;
|
||||
alias /data/apps/DjangoAdmin_Django_AntdVue/public/static/;
|
||||
expires 30d;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
# 上传文件访问
|
||||
location /uploads/ {
|
||||
alias /data/apps/DjangoAdmin_Django_EleVue/public/uploads/;
|
||||
alias /data/apps/DjangoAdmin_Django_AntdVue/public/uploads/;
|
||||
expires 7d;
|
||||
access_log off;
|
||||
limit_except GET { deny all; }
|
||||
@@ -105,8 +105,8 @@ server {
|
||||
cd ui && pnpm build
|
||||
|
||||
# 2. 拷贝构建产物
|
||||
mkdir -p /data/apps/DjangoAdmin_Django_EleVue/ui/dist
|
||||
cp -r ui/dist /data/apps/DjangoAdmin_Django_EleVue/ui/
|
||||
mkdir -p /data/apps/DjangoAdmin_Django_AntdVue/ui/dist
|
||||
cp -r ui/dist /data/apps/DjangoAdmin_Django_AntdVue/ui/
|
||||
|
||||
# 3. 收集 Django 静态文件
|
||||
python manage.py collectstatic
|
||||
|
||||
@@ -239,7 +239,7 @@ class MasterSlaveRouter:
|
||||
|
||||
## Supervisor 多实例配置
|
||||
|
||||
```ini
|
||||
```bash
|
||||
; /etc/supervisor/conf.d/djangoadmin.conf
|
||||
[program:djangoadmin-1]
|
||||
command=/opt/venv/bin/gunicorn application.wsgi:application -c gunicorn.conf.py -b 127.0.0.1:8001
|
||||
|
||||
@@ -12,7 +12,7 @@ Supervisor 是一个 Python 编写的进程管理工具,用于在 Linux 服务
|
||||
|
||||
## 配置文件示例
|
||||
|
||||
```ini
|
||||
```bash
|
||||
; Supervisor 进程管理配置
|
||||
; 将 command / directory 替换为实际路径后复制到 /etc/supervisor/conf.d/
|
||||
|
||||
@@ -20,7 +20,7 @@ Supervisor 是一个 Python 编写的进程管理工具,用于在 Linux 服务
|
||||
; 启动命令:使用 gunicorn 运行 Django WSGI 应用
|
||||
command=/path/to/venv/bin/gunicorn application.wsgi:application --bind 127.0.0.1:8000 --workers 4 --timeout 120
|
||||
; 项目根目录
|
||||
directory=/data/apps/DjangoAdmin_Django_EleVue
|
||||
directory=/data/apps/DjangoAdmin_Django_AntdVue
|
||||
; 自动启动
|
||||
autostart=true
|
||||
; 异常退出后自动重启
|
||||
@@ -134,7 +134,7 @@ gunicorn application.wsgi:application \
|
||||
|
||||
Supervisor 内置日志轮转功能,通过以下配置控制:
|
||||
|
||||
```ini
|
||||
```bash
|
||||
; 单个日志文件最大 50MB
|
||||
stdout_logfile_maxbytes=50MB
|
||||
; 保留 10 个历史日志文件
|
||||
@@ -153,16 +153,16 @@ stdout_logfile_backups=10
|
||||
|
||||
如需同时管理多个进程(如应用 + Celery Worker):
|
||||
|
||||
```ini
|
||||
```bash
|
||||
[program:djangoadmin]
|
||||
command=/path/to/venv/bin/gunicorn application.wsgi:application --bind 127.0.0.1:8000 --workers 4
|
||||
directory=/data/apps/DjangoAdmin_Django_EleVue
|
||||
directory=/data/apps/DjangoAdmin_Django_AntdVue
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
[program:djangoadmin-celery]
|
||||
command=/path/to/venv/bin/celery -A application worker -l info
|
||||
directory=/data/apps/DjangoAdmin_Django_EleVue
|
||||
directory=/data/apps/DjangoAdmin_Django_AntdVue
|
||||
autostart=true
|
||||
autorestart=true
|
||||
numprocs=2
|
||||
|
||||
@@ -170,8 +170,8 @@ pip show Pillow
|
||||
|
||||
```bash
|
||||
# 1. 检查上传目录权限
|
||||
ls -la /data/apps/DjangoAdmin_Django_EleVue/public/uploads/
|
||||
chmod 755 /data/apps/DjangoAdmin_Django_EleVue/public/uploads/
|
||||
ls -la /data/apps/DjangoAdmin_Django_AntdVue/public/uploads/
|
||||
chmod 755 /data/apps/DjangoAdmin_Django_AntdVue/public/uploads/
|
||||
|
||||
# 2. 检查磁盘空间
|
||||
df -h
|
||||
|
||||
@@ -21,12 +21,12 @@ mysqldump -h 127.0.0.1 -u root -p --single-transaction \
|
||||
djangoadmin.django.elevue | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
|
||||
|
||||
# 2. 上传文件备份
|
||||
tar -czf uploads_$(date +%Y%m%d).tar.gz /data/apps/DjangoAdmin_Django_EleVue/public/uploads/
|
||||
tar -czf uploads_$(date +%Y%m%d).tar.gz /data/apps/DjangoAdmin_Django_AntdVue/public/uploads/
|
||||
|
||||
# 3. 应用目录备份(含 .env 和配置)
|
||||
tar -czf app_$(date +%Y%m%d).tar.gz \
|
||||
--exclude='uploads' --exclude='__pycache__' --exclude='.git' \
|
||||
/data/apps/DjangoAdmin_Django_EleVue/
|
||||
/data/apps/DjangoAdmin_Django_AntdVue/
|
||||
```
|
||||
|
||||
### 查看变更日志
|
||||
@@ -54,7 +54,7 @@ git diff --stat HEAD~10
|
||||
### 步骤一:拉取代码
|
||||
|
||||
```bash
|
||||
cd /data/apps/DjangoAdmin_Django_EleVue
|
||||
cd /data/apps/DjangoAdmin_Django_AntdVue
|
||||
|
||||
# 拉取最新代码
|
||||
git fetch origin
|
||||
|
||||
Reference in New Issue
Block a user