forked from hesabix/arc
2.8 KiB
Executable file
2.8 KiB
Executable file
نتایج تست اسکریپت Migration
📋 خلاصه
✅ اسکریپت migration با موفقیت ایجاد شد
✅ تستهای انجام شده
1. بررسی ساختار اسکریپت
- ✅ Import ها درست هستند
- ✅ کلاسها و توابع تعریف شدهاند
- ✅ Argument parser کار میکند
- ✅ Help message نمایش داده میشود
2. تست اتصال PostgreSQL
- ✅ اتصال به PostgreSQL موفق است
- ✅ تعداد جداول: 92 جدول
- ✅ Connection string با quote_plus درست کار میکند
3. تست اتصال MySQL
- ⚠️ pymysql نصب نیست (نیاز به نصب دارد)
- ⚠️ برای تست کامل نیاز به نصب pymysql داریم
📝 نکات مهم
نیازمندیها:
-
pymysql باید نصب شود:
pip install pymysql # یا در virtualenv pip install pymysql -
psycopg2-binary (قبلاً نصب شده است)
تنظیمات پیشفرض:
- MySQL: 185.8.172.57:3306/hesabixpy (root/136431)
- PostgreSQL: localhost:5432/hesabix (hesabix/@@babaK24055)
🚀 نحوه اجرا
قبل از اجرا:
-
نصب pymysql:
pip install pymysql -
Backup از PostgreSQL:
pg_dump -U hesabix -d hesabix -h localhost -F c -f backup_before_migration.dump
اجرای migration:
cd /var/www/arc/hesabixAPI
python3 scripts/migrate_mysql_to_postgresql.py
اجرا با تنظیمات سفارشی:
python3 scripts/migrate_mysql_to_postgresql.py \
--mysql-host 185.8.172.57 \
--mysql-user root \
--mysql-password 136431 \
--postgres-password '@@babaK24055' \
--batch-size 1000
⚠️ هشدارها
- Seed Data: به صورت پیشفرض seed data ها از PostgreSQL پاک میشوند
- Backup: حتماً قبل از اجرا backup بگیرید
- Network: در صورت قطع ارتباط، checkpoint ذخیره میشود
- Time: برای حجم ~0.5GB ممکن است 1-3 ساعت زمان ببرد
📊 ویژگیهای اسکریپت
✅ پاکسازی Seed Data
✅ سیستم Checkpoint/Resume
✅ تبدیل نوع دادهها
✅ مدیریت Foreign Keys
✅ پردازش Batch
✅ Skip کردن alembic_version
✅ Transaction Safety
✅ Error Handling
✅ Progress Reporting
🔄 Checkpoint
اسکریپت وضعیت را در فایل migration_checkpoint.json ذخیره میکند.
برای شروع از ابتدا:
python3 scripts/migrate_mysql_to_postgresql.py --clear-checkpoint
📞 پشتیبانی
در صورت بروز مشکل، فایل checkpoint را بررسی کنید و لاگها را چک کنید.