优化更新
This commit is contained in:
@@ -7,15 +7,15 @@
|
||||
```
|
||||
document/
|
||||
├── mysql/ # MySQL 脚本
|
||||
│ └── djangoadmin.flask.elevue.sql
|
||||
│ └── djangoadmin.flask.naivevue.sql
|
||||
├── postgresql/ # PostgreSQL 脚本
|
||||
│ └── djangoadmin.flask.elevue.sql
|
||||
│ └── djangoadmin.flask.naivevue.sql
|
||||
├── sqlserver/ # SQL Server 脚本
|
||||
│ └── djangoadmin.flask.elevue.sql
|
||||
│ └── djangoadmin.flask.naivevue.sql
|
||||
├── sqlite/ # SQLite 脚本
|
||||
│ └── djangoadmin.flask.elevue.sql
|
||||
│ └── djangoadmin.flask.naivevue.sql
|
||||
└── oracle/ # Oracle 脚本
|
||||
└── djangoadmin.flask.elevue.sql
|
||||
└── djangoadmin.flask.naivevue.sql
|
||||
```
|
||||
|
||||
:::tip 温馨提示
|
||||
@@ -36,7 +36,7 @@ document/
|
||||
**MySQL**:
|
||||
|
||||
```sql
|
||||
CREATE DATABASE `djangoadmin.flask.elevue`
|
||||
CREATE DATABASE `djangoadmin.flask.naivevue`
|
||||
DEFAULT CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_general_ci;
|
||||
```
|
||||
@@ -44,7 +44,7 @@ CREATE DATABASE `djangoadmin.flask.elevue`
|
||||
**PostgreSQL**:
|
||||
|
||||
```sql
|
||||
CREATE DATABASE "djangoadmin.flask.elevue"
|
||||
CREATE DATABASE "djangoadmin.flask.naivevue"
|
||||
WITH ENCODING 'UTF8'
|
||||
LC_COLLATE = 'zh_CN.UTF-8'
|
||||
LC_CTYPE = 'zh_CN.UTF-8'
|
||||
@@ -54,7 +54,7 @@ CREATE DATABASE "djangoadmin.flask.elevue"
|
||||
**SQL Server**:
|
||||
|
||||
```sql
|
||||
CREATE DATABASE [djangoadmin.flask.elevue]
|
||||
CREATE DATABASE [djangoadmin.flask.naivevue]
|
||||
COLLATE Chinese_PRC_CI_AS;
|
||||
```
|
||||
|
||||
@@ -87,27 +87,27 @@ GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE T
|
||||
|
||||
```bash
|
||||
# 使用 mysql 命令行导入
|
||||
mysql -uroot -p djangoadmin.flask.elevue < document/mysql/djangoadmin.flask.elevue.sql
|
||||
mysql -uroot -p djangoadmin.flask.naivevue < document/mysql/djangoadmin.flask.naivevue.sql
|
||||
|
||||
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/mysql/djangoadmin.flask.elevue.sql
|
||||
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/mysql/djangoadmin.flask.naivevue.sql
|
||||
```
|
||||
|
||||
**PostgreSQL**:
|
||||
|
||||
```bash
|
||||
# 使用 psql 命令行导入
|
||||
psql -U postgres -d djangoadmin.flask.elevue -f document/postgresql/djangoadmin.flask.elevue.sql
|
||||
psql -U postgres -d djangoadmin.flask.naivevue -f document/postgresql/djangoadmin.flask.naivevue.sql
|
||||
|
||||
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/postgresql/djangoadmin.flask.elevue.sql
|
||||
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/postgresql/djangoadmin.flask.naivevue.sql
|
||||
```
|
||||
|
||||
**SQL Server**:
|
||||
|
||||
```bash
|
||||
# 使用 sqlcmd 命令行导入
|
||||
sqlcmd -S localhost -U sa -P your_password -d djangoadmin.flask.elevue -i document/sqlserver/djangoadmin.flask.elevue.sql
|
||||
sqlcmd -S localhost -U sa -P your_password -d djangoadmin.flask.naivevue -i document/sqlserver/djangoadmin.flask.naivevue.sql
|
||||
|
||||
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/sqlserver/djangoadmin.flask.elevue.sql
|
||||
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/sqlserver/djangoadmin.flask.naivevue.sql
|
||||
# 或使用 SSMS(SQL Server Management Studio):打开 SQL 文件 → 执行
|
||||
```
|
||||
|
||||
@@ -115,18 +115,18 @@ sqlcmd -S localhost -U sa -P your_password -d djangoadmin.flask.elevue -i docume
|
||||
|
||||
```bash
|
||||
# 使用 sqlite3 命令行导入
|
||||
sqlite3 ./data/app.db < document/sqlite/djangoadmin.flask.elevue.sql
|
||||
sqlite3 ./data/app.db < document/sqlite/djangoadmin.flask.naivevue.sql
|
||||
|
||||
# 或使用 Navicat 等工具:打开数据库文件 → 运行 SQL 文件 → 选择 document/sqlite/djangoadmin.flask.elevue.sql
|
||||
# 或使用 Navicat 等工具:打开数据库文件 → 运行 SQL 文件 → 选择 document/sqlite/djangoadmin.flask.naivevue.sql
|
||||
```
|
||||
|
||||
**Oracle**:
|
||||
|
||||
```bash
|
||||
# 使用 sqlplus 命令行导入
|
||||
sqlplus djangoadmin/your_password@127.0.0.1:1521/XE @document/oracle/djangoadmin.flask.elevue.sql
|
||||
sqlplus djangoadmin/your_password@127.0.0.1:1521/XE @document/oracle/djangoadmin.flask.naivevue.sql
|
||||
|
||||
# 或使用 Navicat 等工具:打开连接 → 运行 SQL 文件 → 选择 document/oracle/djangoadmin.flask.elevue.sql
|
||||
# 或使用 Navicat 等工具:打开连接 → 运行 SQL 文件 → 选择 document/oracle/djangoadmin.flask.naivevue.sql
|
||||
```
|
||||
|
||||
:::tip 温馨提示
|
||||
@@ -150,7 +150,7 @@ Oracle 用户需要有 CREATE TABLE、CREATE SEQUENCE、CREATE TRIGGER 权限。
|
||||
DB_DRIVER=mysql # 数据库驱动类型
|
||||
DB_HOST=127.0.0.1 # 数据库主机地址
|
||||
DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
|
||||
DB_DATABASE=djangoadmin.flask.elevue # 数据库名称
|
||||
DB_DATABASE=djangoadmin.flask.naivevue # 数据库名称
|
||||
DB_USERNAME=root # 数据库用户名
|
||||
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
|
||||
DB_PREFIX=flask_ # 数据表前缀
|
||||
@@ -162,7 +162,7 @@ DB_PREFIX=flask_ # 数据表前缀
|
||||
# DB_DRIVER=postgresql # 数据库驱动类型
|
||||
# DB_HOST=127.0.0.1 # 数据库主机地址
|
||||
# DB_PORT=5432 # 数据库端口(PostgreSQL 默认 5432)
|
||||
# DB_DATABASE=djangoadmin.flask.elevue # 数据库名称
|
||||
# DB_DATABASE=djangoadmin.flask.naivevue # 数据库名称
|
||||
# DB_USERNAME=postgres # 数据库用户名
|
||||
# DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
|
||||
# DB_PREFIX=flask_ # 数据表前缀
|
||||
@@ -174,7 +174,7 @@ DB_PREFIX=flask_ # 数据表前缀
|
||||
# DB_DRIVER=mssql # 数据库驱动类型
|
||||
# DB_HOST=127.0.0.1 # 数据库主机地址
|
||||
# DB_PORT=1433 # 数据库端口(SQL Server 默认 1433)
|
||||
# DB_DATABASE=djangoadmin.flask.elevue # 数据库名称
|
||||
# DB_DATABASE=djangoadmin.flask.naivevue # 数据库名称
|
||||
# DB_USERNAME=sa # 数据库用户名
|
||||
# DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
|
||||
# DB_PREFIX=flask_ # 数据表前缀
|
||||
@@ -263,11 +263,11 @@ $ python scripts/setup_db.py --drop-first
|
||||
[INFO] ============================================================
|
||||
[INFO] 检测数据库驱动: mysql
|
||||
[INFO] 连接 MySQL 服务器: 127.0.0.1:3306
|
||||
[INFO] 数据库配置: root@127.0.0.1:3306/djangoadmin.flask.elevue
|
||||
[INFO] 数据库配置: root@127.0.0.1:3306/djangoadmin.flask.naivevue
|
||||
[INFO] 数据表前缀: flask_
|
||||
[INFO] 删除已有数据库: djangoadmin.flask.elevue
|
||||
[INFO] 创建数据库: djangoadmin.flask.elevue
|
||||
[INFO] 查找数据库脚本: document\mysql\djangoadmin.flask.elevue.sql
|
||||
[INFO] 删除已有数据库: djangoadmin.flask.naivevue
|
||||
[INFO] 创建数据库: djangoadmin.flask.naivevue
|
||||
[INFO] 查找数据库脚本: document\mysql\djangoadmin.flask.naivevue.sql
|
||||
[INFO] 导入 SQL 脚本...
|
||||
[INFO] SQL 脚本导入完成: 784510 条语句
|
||||
[INFO] 创建数据表...
|
||||
@@ -294,13 +294,13 @@ $ python scripts/setup_db.py --drop-first
|
||||
| 数据库 | DB_DRIVER 值 | 默认端口 | 依赖包 | 脚本目录 |
|
||||
|:----|:----|:----|:----|:----|
|
||||
| MySQL | `mysql` | 3306 | PyMySQL | `document/mysql/` |
|
||||
| PostgreSQL | `postgresql` | 5432 | psycopg[binary] | `document/postgresql/` |
|
||||
| PostgreSQL | `postgresql` | 5432 | psycopg2-binary | `document/postgresql/` |
|
||||
| SQL Server | `mssql` | 1433 | pymssql | `document/sqlserver/` |
|
||||
| SQLite | `sqlite` | - | 内置 | `document/sqlite/` |
|
||||
| Oracle | `oracle` | 1521 | oracledb | `document/oracle/` |
|
||||
|
||||
:::tip 温馨提示
|
||||
切换数据库驱动后,需要安装对应的驱动包(如 `pip install psycopg[binary]`),然后按照上述步骤重新初始化数据库。
|
||||
切换数据库驱动后,需要安装对应的驱动包(如 `pip install psycopg2-binary`),然后按照上述步骤重新初始化数据库。
|
||||
:::
|
||||
|
||||
## 种子数据
|
||||
@@ -380,13 +380,13 @@ flask db stamp head
|
||||
|
||||
| 命令 | 对应命令 | 说明 |
|
||||
|:----|:----|:----|
|
||||
| `make db-init` | `python scripts/setup_db.py` | 初始化数据库(建库 + 建表 + 种子数据 + flask db stamp) |
|
||||
| `make seed-dict` | `python scripts/seed_dict.py` | 初始化业务字典数据(幂等,按 code 判重) |
|
||||
| `make migrate-revision` | `flask db migrate` | 生成增量迁移脚本 |
|
||||
| `make migrate-upgrade` | `flask db upgrade` | 应用所有待执行的迁移 |
|
||||
| `make migrate-stamp` | `flask db stamp head` | 标记当前数据库为最新版本 |
|
||||
| `make db-migrate ARGS="..."` | `python scripts/migrate_db.py ...` | 跨库数据迁移 |
|
||||
| `make db-migrate-dry-run ARGS="..."` | `python scripts/migrate_db.py ... --dry-run` | 跨库迁移干跑(只核对计划,不写入目标库) |
|
||||
| `make db-migrate` | `flask db migrate` | 生成增量迁移脚本 |
|
||||
| `make db-upgrade` | `flask db upgrade` | 应用迁移到最新 |
|
||||
| `make db-downgrade` | `flask db downgrade` | 回滚一次迁移 |
|
||||
|
||||
:::tip 数据库初始化
|
||||
数据库初始化使用 `python scripts/setup_db.py`(非 Makefile 命令),详见上方「方式二:脚本初始化」章节。跨库数据迁移使用 `python scripts/migrate_db.py`。
|
||||
:::
|
||||
|
||||
## 数据库备份与恢复
|
||||
|
||||
@@ -394,30 +394,30 @@ flask db stamp head
|
||||
|
||||
```bash
|
||||
# 备份数据库
|
||||
mysqldump -uroot -p djangoadmin.flask.elevue > backup.sql
|
||||
mysqldump -uroot -p djangoadmin.flask.naivevue > backup.sql
|
||||
|
||||
# 恢复数据库
|
||||
mysql -uroot -p djangoadmin.flask.elevue < backup.sql
|
||||
mysql -uroot -p djangoadmin.flask.naivevue < backup.sql
|
||||
```
|
||||
|
||||
+ PostgreSQL 备份
|
||||
|
||||
```bash
|
||||
# 备份数据库
|
||||
pg_dump -U postgres djangoadmin.flask.elevue > backup.sql
|
||||
pg_dump -U postgres djangoadmin.flask.naivevue > backup.sql
|
||||
|
||||
# 恢复数据库
|
||||
psql -U postgres djangoadmin.flask.elevue < backup.sql
|
||||
psql -U postgres djangoadmin.flask.naivevue < backup.sql
|
||||
```
|
||||
|
||||
+ SQL Server 备份
|
||||
|
||||
```bash
|
||||
# 备份数据库
|
||||
sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [djangoadmin.flask.elevue] TO DISK = 'backup.bak'"
|
||||
sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [djangoadmin.flask.naivevue] TO DISK = 'backup.bak'"
|
||||
|
||||
# 恢复数据库
|
||||
sqlcmd -S localhost -U sa -P your_password -Q "RESTORE DATABASE [djangoadmin.flask.elevue] FROM DISK = 'backup.bak'"
|
||||
sqlcmd -S localhost -U sa -P your_password -Q "RESTORE DATABASE [djangoadmin.flask.naivevue] FROM DISK = 'backup.bak'"
|
||||
|
||||
# 或使用 Navicat 等工具进行备份恢复
|
||||
# 或使用 SSMS(SQL Server Management Studio):右键数据库 → 任务 → 备份 / 还原
|
||||
|
||||
Reference in New Issue
Block a user