Files
boursecu_server/database/sql/DEPLOY_CHECKLIST.md
T

116 lines
3.6 KiB
Markdown
Raw Normal View History

2026-06-11 10:41:55 +03:30
# چک‌لیست Deploy — برنچ ماژولار
2026-06-11 19:23:16 +03:30
> **ایمنی:** `php artisan migrate` دیگر `mysql-schema.sql` را auto-load نمی‌کند (DROP TABLE نمی‌زند).
> فایل schema فقط دستی: `database/schema/mysql-schema.sql.reference`
2026-06-11 13:22:30 +03:30
## قبل از شروع
- [ ] بکاپ DB
- [ ] کد + SQLهای جدید روی سرور (`baseline_migrations.sql` حتماً نسخه جدید — **۱۱ ردیف**)
- [ ] `database/migrations/` فقط ۸ فایل `2026_*`
- [ ] `php artisan config:clear`
2026-06-11 10:41:55 +03:30
---
2026-06-11 13:22:30 +03:30
## DB موجود — ترتیب
2026-06-11 10:41:55 +03:30
```bash
2026-06-11 13:22:30 +03:30
cd /opt/PROJECT/server
2026-06-11 10:41:55 +03:30
2026-06-11 13:22:30 +03:30
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"')
2026-06-11 10:41:55 +03:30
2026-06-11 13:22:30 +03:30
# ۱ baseline
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" \
2026-06-11 10:41:55 +03:30
< database/sql/baseline_migrations.sql
2026-06-11 13:59:28 +03:30
2026-06-11 13:22:30 +03:30
# باید ۱۱ ردیف چاپ شود (شامل 2019 و 2021)
2026-06-11 10:41:55 +03:30
2026-06-11 13:22:30 +03:30
# ۲ چک 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%';"
2026-06-11 13:59:28 +03:30
2026-06-11 13:22:30 +03:30
# باید: 2
# ۳ status — ۱۰ تا همه Yes
2026-06-11 10:41:55 +03:30
php artisan migrate:status
2026-06-11 13:22:30 +03:30
# ۴ migrate
2026-06-11 10:41:55 +03:30
php artisan migrate
2026-06-11 13:22:30 +03:30
# ۵ settings
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" \
2026-06-11 10:41:55 +03:30
< database/sql/deploy_settings_const.sql
```
2026-06-11 13:22:30 +03:30
**یا:** `bash database/sql/run_deploy_existing_db.sh`
2026-06-11 10:41:55 +03:30
2026-06-11 13:22:30 +03:30
### چک بعد از مرحله ۲
2026-06-11 10:41:55 +03:30
2026-06-11 13:22:30 +03:30
| خروجی `migrate:status` | کار |
|------------------------|-----|
| ۱۰ تا همه **Yes** | ادامه مرحله ۴ |
| `2019`/`2021` هنوز **No** | `fake_package_migrations.sql` بزن → دوباره status |
2026-06-11 10:41:55 +03:30
```bash
2026-06-11 13:22:30 +03:30
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
2026-06-11 10:41:55 +03:30
```
---
2026-06-11 13:22:30 +03:30
## soroushgold — الان (بعد از خطا)
2026-06-11 10:41:55 +03:30
```bash
2026-06-11 13:22:30 +03:30
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 خالی
```bash
2026-06-11 19:23:16 +03:30
mysql ... < database/schema/mysql-schema.sql.reference
mysql ... < database/sql/baseline_migrations.sql
2026-06-11 13:22:30 +03:30
php artisan migrate
2026-06-11 10:41:55 +03:30
mysql ... < database/sql/deploy_settings_const.sql
```
---
2026-06-11 13:22:30 +03:30
## خطاها
2026-06-11 10:41:55 +03:30
2026-06-11 13:22:30 +03:30
| خطا | فیکس |
|-----|------|
| `Table already exists` | `fake_package_migrations.sql` → `migrate` |
2026-06-11 19:23:16 +03:30
| `Loading stored database schema` | کد قدیمی — `git pull` (دیگر رخ نمی‌دهد). اگر شد: restore بکاپ |
2026-06-11 13:22:30 +03:30
| `2019`/`2021` No بعد از baseline | baseline قدیمی → `fake_package_migrations.sql` |
| `Unknown host HOST` | از `.env` بخوان نه placeholder |
2026-06-11 13:59:28 +03:30
| `Unknown column 'is_exist'` | `git pull` + دوباره `deploy_settings_const.sql` (نسخه جدید ستون را اضافه می‌کند) |
2026-06-11 10:41:55 +03:30
---
2026-06-11 13:22:30 +03:30
## فایل‌ها
2026-06-11 10:41:55 +03:30
| فایل | کار |
|------|-----|
2026-06-11 13:22:30 +03:30
| `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` | اجرای خودکار + چک |