#!/bin/bash # +====================================================================== # | DjangoAdmin 数据库迁移快速参考 # +====================================================================== # 颜色定义 GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}DjangoAdmin 数据库迁移快速参考${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo -e "${YELLOW}1. MySQL → PostgreSQL(首次迁移或目标库为空)${NC}" echo "python scripts/migrate_db.py \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=postgresql --dst-host=127.0.0.1 --dst-port=5432 \\" echo " --dst-db=djangoadmin.django.elevue --dst-user=postgres --dst-pass=postgres" echo "" echo -e "${YELLOW}2. MySQL → PostgreSQL(目标库已有数据,先清空再迁移)${NC}" echo "python scripts/migrate_db.py --truncate-target \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=postgresql --dst-host=127.0.0.1 --dst-port=5432 \\" echo " --dst-db=djangoadmin.django.elevue --dst-user=postgres --dst-pass=postgres" echo "" echo -e "${YELLOW}3. MySQL → PostgreSQL(先删除目标库再重建)${NC}" echo "python scripts/migrate_db.py --drop-target-first \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=postgresql --dst-host=127.0.0.1 --dst-port=5432 \\" echo " --dst-db=djangoadmin.django.elevue --dst-user=postgres --dst-pass=postgres" echo "" echo -e "${YELLOW}2. MySQL → SQL Server${NC}" echo "python scripts/migrate_db.py \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=mssql --dst-host=127.0.0.1 --dst-port=1433 \\" echo " --dst-db=djangoadmin --dst-user=sa --dst-pass=your_password" echo "" echo -e "${YELLOW}3. MySQL → SQLite${NC}" echo "python scripts/migrate_db.py \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=sqlite --dst-db=./data/djangoadmin.db" echo "" echo -e "${YELLOW}4. MySQL → Oracle${NC}" echo "python scripts/migrate_db.py \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=oracle --dst-host=127.0.0.1 --dst-port=1521 \\" echo " --dst-db=ORCL --dst-user=system --dst-pass=oracle" echo "" echo -e "${YELLOW}5. 干跑模式(查看计划)${NC}" echo "python scripts/migrate_db.py --dry-run \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=postgresql --dst-db=djangoadmin \\" echo " --dst-user=postgres --dst-pass=postgres" echo "" echo -e "${YELLOW}6. 断点续传${NC}" echo "python scripts/migrate_db.py \\" echo " --only-tables=django_user,django_role,django_menu \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=postgresql --dst-host=127.0.0.1 --dst-port=5432 \\" echo " --dst-db=djangoadmin.django.elevue --dst-user=postgres --dst-pass=postgres" echo "" echo -e "${YELLOW}7. 跳过已存在的表${NC}" echo "python scripts/migrate_db.py --skip-existing \\" echo " --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \\" echo " --src-db=djangoadmin.django.elevue --src-user=root --src-pass=root \\" echo " --dst-driver=postgresql --dst-host=127.0.0.1 --dst-port=5432 \\" echo " --dst-db=djangoadmin.django.elevue --dst-user=postgres --dst-pass=postgres" echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}依赖安装${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo "# PostgreSQL" echo "pip install psycopg" echo "" echo "# SQL Server" echo "pip install pymssql" echo "" echo "# Oracle" echo "pip install oracledb" echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}更多信息请查看 MIGRATE_README.md${NC}" echo -e "${GREEN}========================================${NC}"