3.7 KiB
3.7 KiB
چکلیست 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 |
اجرای خودکار + چک |