105 lines
4.6 KiB
Bash
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}"
|