Files
boursecu_server/database/sql/DEPLOY_CHECKLIST.md
T
2026-06-11 13:59:28 +03:30

3.7 KiB
Raw Blame History

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

قبل از شروع

  • بکاپ 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
  
   #mysql -h 127.0.0.1 -P 3030 -u root -p soroushgold   < 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%';"
  
  #mysql -h "127.0.0.1" -P "3030" -u "root" -p"1ipqLRRMC7qS8s3WkuwXiS7P" "soroushgold" -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
  
  #mysql -h "127.0.0.1" -P "3030" -u "root" -p"1ipqLRRMC7qS8s3WkuwXiS7P" "soroushgold" \      < 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 خالی

php artisan migrate
mysql ... < database/sql/deploy_settings_const.sql

baseline_migrations.sql نزنید.


خطاها

خطا فیکس
Table already exists fake_package_migrations.sql → migrate
Loading stored database schema restore بکاپ → baseline قبل از migrate
2019/2021 No بعد از baseline baseline قدیمی → fake_package_migrations.sql
Unknown host HOST از .env بخوان نه placeholder
Unknown column 'is_exist' git pull + دوباره deploy_settings_const.sql (نسخه جدید ستون را اضافه می‌کند)

فایل‌ها

فایل کار
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 اجرای خودکار + چک