Files
DjangoAdmin_Django_EleVue/scripts/migrate_quick_ref.sh
T
2026-09-11 11:39:07 +08:00

105 lines
4.6 KiB
Bash

#!/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}"