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

119 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# چک‌لیست Deploy — برنچ ماژولار
## قبل از شروع
- [ ] بکاپ DB
- [ ] کد + SQLهای جدید روی سرور (`baseline_migrations.sql` حتماً نسخه جدید — **۱۱ ردیف**)
- [ ] `database/migrations/` فقط ۸ فایل `2026_*`
- [ ] `php artisan config:clear`
---
## DB موجود — ترتیب
```bash
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 |
```bash
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 — الان (بعد از خطا)
```bash
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
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` | اجرای خودکار + چک |