Files
boursecu_server/database/sql/DEPLOY_CHECKLIST.md
T
2026-07-08 17:13:04 +03:30

3.9 KiB
Raw Blame History

چک‌لیست Deploy — برنچ ماژولار

ایمنی: php artisan migrate دیگر mysql-schema.sql را auto-load نمی‌کند (DROP TABLE نمی‌زند).
فایل schema فقط دستی: database/schema/mysql-schema.sql.reference

قبل از شروع

  • بکاپ DB
  • کد + SQLهای جدید روی سرور (baseline_migrations.sql حتماً نسخه جدید — ۱۱ ردیف)
  • database/migrations/ فقط ۸ فایل 2026_*
  • php artisan config:clear

DB موجود — ترتیب

cd /opt/PROJECT/server

DB_HOST=$(grep ^DB_HOST= .env | cut -d= -f2- | tr -d '\r"')
DB_PORT=$(grep ^DB_PORT= .env | cut -d= -f2- | tr -d '\r"')
DB_DATABASE=$(grep ^DB_DATABASE= .env | cut -d= -f2- | tr -d '\r"')
DB_USERNAME=$(grep ^DB_USERNAME= .env | cut -d= -f2- | tr -d '\r"')
DB_PASSWORD=$(grep ^DB_PASSWORD= .env | cut -d= -f2- | tr -d '\r"')

# ۱ baseline
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" \
  < database/sql/baseline_migrations.sql

# باید ۱۱ ردیف چاپ شود (شامل 2019 و 2021)

# ۲ چک DB — اگر کمتر از ۲ بود baseline قدیمی است
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" -N -e \
  "SELECT COUNT(*) FROM migrations WHERE migration LIKE '2019%' OR migration LIKE '2021%';"

# باید: 2

# ۳ status — ۱۰ تا همه Yes
php artisan migrate:status

# ۴ migrate
php artisan migrate

# ۵ settings
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" \
  < database/sql/deploy_settings_const.sql

یا: bash database/sql/run_deploy_existing_db.sh

چک بعد از مرحله ۲

خروجی migrate:status کار
۱۰ تا همه Yes ادامه مرحله ۴
2019/2021 هنوز No fake_package_migrations.sql بزن → دوباره status
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" \
  < database/sql/fake_package_migrations.sql
php artisan migrate:status
php artisan migrate

soroushgold — الان (بعد از خطا)

cd /opt/soroushgold/server

mysql -h 127.0.0.1 -P 3030 -u root -p soroushgold \
  < database/sql/fake_package_migrations.sql

php artisan migrate:status
php artisan migrate

mysql -h 127.0.0.1 -P 3030 -u root -p soroushgold \
  < database/sql/deploy_settings_const.sql

DB خالی

mysql ... < database/schema/mysql-schema.sql.reference
mysql ... < database/sql/baseline_migrations.sql
php artisan migrate
mysql ... < database/sql/deploy_settings_const.sql

خطاها

خطا فیکس
Table already exists fake_package_migrations.sql → migrate
Loading stored database schema کد قدیمی — git pull (دیگر رخ نمی‌دهد). اگر شد: restore بکاپ
2019/2021 No بعد از baseline baseline قدیمی → fake_package_migrations.sql
Unknown host HOST از .env بخوان نه placeholder
Unknown column 'total_referrals' git pull + php artisan migrate (ensure_total_referrals)
Unknown column 'order_limit_enabled' / محدودیت سفارش ذخیره نمی‌شود git pull + php artisan migrate (ensure_products_baseline_columns)
Nothing to migrate ولی ستون نیست baseline فقط در جدول migrations ثبت کرده — migrationهای ensure_* را deploy و migrate بزنید

فایل‌ها

فایل کار
baseline_migrations.sql ۱۱ migration یکجا
fake_package_migrations.sql فقط 2019 + 2021
deploy_settings_const.sql settings + const
fix_migrations_after_failed_migrate.sql reset کامل migrations
run_deploy_existing_db.sh اجرای خودکار + چک