Become a sponsor

说明
项目提供 scripts/migrate_db.py 脚本,支持在不同数据库之间迁移数据(如 MySQL → PostgreSQL / SQL Server / SQLite / Oracle)。脚本独立运行,参数显式给出,不依赖 .env。
| 场景 | 说明 |
|---|---|
| MySQL → PostgreSQL | 生产环境切换数据库 |
| MySQL → SQL Server | 企业环境适配 |
| MySQL → SQLite | 开发/测试环境轻量化 |
| MySQL → Oracle | 企业级数据库适配 |
python scripts/migrate_db.py --help| 参数 | 必填 | 说明 | 示例 |
|---|---|---|---|
--source-db | 是 | 源数据库类型 | mysql |
--target-db | 是 | 目标数据库类型 | postgresql |
--source-url | 是 | 源数据库连接 URL | mysql+pymysql://root:123456@localhost:3306/db |
--target-url | 是 | 目标数据库连接 URL | postgresql://postgres:123456@localhost:5432/db |
python scripts/migrate_db.py \
--source-db mysql \
--target-db postgresql \
--source-url "mysql+pymysql://root:123456@localhost:3306/djangoadmin" \
--target-url "postgresql://postgres:123456@localhost:5432/djangoadmin"python scripts/migrate_db.py \
--source-db mysql \
--target-db sqlite \
--source-url "mysql+pymysql://root:123456@localhost:3306/djangoadmin" \
--target-url "sqlite:///djangoadmin.db"1. 连接源数据库和目标数据库
2. 读取源数据库所有表结构
3. 在目标数据库创建对应表(Base.metadata.create_all)
4. 逐表读取源数据 → 批量插入目标数据库
5. 输出迁移统计(表数、行数、耗时)迁移前备份
跨库迁移前务必备份目标数据库,避免数据丢失。
scripts/seed_dict.py 补充字典数据| 脚本 | 用途 |
|---|---|
scripts/migrate_db.py | 跨库数据迁移 |
scripts/seed_dict.py | 字典数据初始化 |
scripts/init_db.py | 数据库初始化(建库建表) |
scripts/health_check.py | 健康检查 |
跨库数据迁移脚本支持 MySQL / PostgreSQL / SQL Server / SQLite / Oracle 之间的数据迁移,参数显式给出,不依赖 .env 配置。迁移前务必备份目标数据库。