forked from hesabix/arc
219 lines
10 KiB
Markdown
Executable file
219 lines
10 KiB
Markdown
Executable file
# گزارش تحلیل میگریشنها
|
||
|
||
**تاریخ بررسی:** 2026-01-02
|
||
**تعداد کل میگریشنها:** 37 فایل
|
||
|
||
---
|
||
|
||
## 🔴 مشکلات بحرانی
|
||
|
||
### 1. مشکل چند Head (Multiple Heads)
|
||
|
||
**وضعیت:** ⚠️ **5 head شناسایی شد** (باید فقط 1 head باشد)
|
||
|
||
#### Head های شناسایی شده:
|
||
|
||
1. **`b8c9286db6bd`** (merge_all_heads_final.py)
|
||
- تاریخ: 2025-01-15
|
||
- توضیحات: این یک میگریشن merge است که 4 head را merge میکند
|
||
- مشکل: بعد از این merge، دو child ایجاد شده (`20250115_000001` و `20250129_120000`) که بعداً توسط `a23683863c8a` merge شدهاند، اما خود `b8c9286db6bd` هنوز یک head است
|
||
|
||
2. **`20250128_150000`** (add_default_price_list_to_quick_sales.py)
|
||
- تاریخ: 2025-01-28
|
||
- توضیحات: این میگریشن در merge `b8c9286db6bd` استفاده شده اما بعد از آن هیچ میگریشنی نیامده
|
||
- مشکل: این میگریشن یک head است و باید به chain اصلی متصل شود
|
||
|
||
3. **`20251223_001905`** (add_invoice_profit_calculation_settings.py)
|
||
- تاریخ: 2025-12-23
|
||
- توضیحات: این میگریشن از `4d60f85a6561` منشعب شده
|
||
- مشکل: این میگریشن یک branch موازی با `20251207_000001` ایجاد کرده که باید merge شود
|
||
- Child: `20251223_002500` → `20260101_000001` → `20260102_000001`
|
||
|
||
4. **`20251207_000001_change_activity_logs_entity_id_to_string`**
|
||
- تاریخ: 2025-12-07
|
||
- توضیحات: این میگریشن از `4d60f85a6561` منشعب شده
|
||
- مشکل: این میگریشن یک branch موازی با `20251223_001905` ایجاد کرده که باید merge شود
|
||
- Child: `20250108_000001_optimize_ticket_indexes` (با مشکل ترتیب زمانی)
|
||
|
||
5. **`20250108_000001_optimize_ticket_indexes`**
|
||
- تاریخ: 2025-01-08
|
||
- توضیحات: این میگریشن به `20251207_000001` اشاره میکند
|
||
- مشکل: **مشکل ترتیب زمانی** - تاریخ میگریشن (2025-01-08) قبل از parent خود (2025-12-07) است!
|
||
|
||
---
|
||
|
||
## 🟠 Branch های موازی
|
||
|
||
**وضعیت:** ⚠️ **5 branch point شناسایی شد**
|
||
|
||
### Branch Point 1: `b8c9286db6bd`
|
||
- **Parent:** `b8c9286db6bd` (merge_all_heads_final.py)
|
||
- **Children:**
|
||
- `20250115_000001` (fix_zohal_account_code.py)
|
||
- `20250129_120000` (add_inventory_valuation_method.py)
|
||
- **وضعیت:** ✅ این branch توسط `a23683863c8a` merge شده است
|
||
|
||
### Branch Point 2: `20250205_000002_seed_repair_shop_plugin`
|
||
- **Parent:** `20250205_000002_seed_repair_shop_plugin`
|
||
- **Children:**
|
||
- `20250106_000001` (create_business_notification_system.py)
|
||
- `20251206_000001_remove_phone_email_from_repair_orders`
|
||
- **وضعیت:** ✅ این branch توسط `4d60f85a6561` merge شده است
|
||
|
||
### Branch Point 3: `20250120_000001`
|
||
- **Parent:** `20250120_000001` (create_warranty_tables.py)
|
||
- **Children:**
|
||
- `20251202_000001` (add_data_type_to_product_attributes.py)
|
||
- `20250120_000002` (rename_metadata_to_extra_metadata.py)
|
||
- **وضعیت:** ✅ این branch توسط `8cb61ffb0637` merge شده است
|
||
|
||
### Branch Point 4: `4d60f85a6561` ⚠️ **مشکل**
|
||
- **Parent:** `4d60f85a6561` (merge_all_current_heads.py)
|
||
- **Children:**
|
||
- `20251223_001905` (add_invoice_profit_calculation_settings.py)
|
||
- `20251207_000001_change_activity_logs_entity_id_to_string`
|
||
- **وضعیت:** ❌ **این branch هنوز merge نشده است!**
|
||
- **راه حل:** باید یک merge migration ایجاد شود که این دو branch را یکی کند
|
||
|
||
### Branch Point 5: `20250101_000000`
|
||
- **Parent:** `20250101_000000` (init_schema)
|
||
- **Children:**
|
||
- `20240101_120000` (optimize_indexes_phase3.py)
|
||
- `483a0bf37370` (add_mobile_verified_column.py)
|
||
- **وضعیت:** ✅ این branch توسط `010e36975a45` merge شده است
|
||
|
||
---
|
||
|
||
## 🟡 مشکلات ترتیب زمانی
|
||
|
||
**وضعیت:** ⚠️ **1 میگریشن با ترتیب زمانی اشتباه**
|
||
|
||
### میگریشن مشکلدار:
|
||
|
||
**`20250108_000001_optimize_ticket_indexes`**
|
||
- **تاریخ میگریشن:** 2025-01-08
|
||
- **Parent:** `20251207_000001_change_activity_logs_entity_id_to_string`
|
||
- **تاریخ Parent:** 2025-12-07
|
||
- **مشکل:** میگریشن 11 ماه قبل از parent خود ایجاد شده است!
|
||
|
||
**توضیحات:**
|
||
این یک مشکل جدی است. به نظر میرسد که:
|
||
1. میگریشن `20250108_000001` در تاریخ 2025-01-08 ایجاد شده
|
||
2. اما `down_revision` آن به میگریشنی اشاره میکند که در 2025-12-07 ایجاد شده
|
||
3. این باعث میشود که ترتیب اجرای میگریشنها اشتباه شود
|
||
|
||
**راه حل:**
|
||
- باید `down_revision` این میگریشن را به میگریشن صحیح تغییر داد
|
||
- یا اگر این میگریشن باید بعد از `20251207_000001` اجرا شود، باید تاریخ آن را تغییر داد
|
||
|
||
---
|
||
|
||
## 📊 ساختار فعلی میگریشنها
|
||
|
||
### Chain اصلی (تا `4d60f85a6561`):
|
||
```
|
||
20250101_000000 (init_schema)
|
||
├── 20240101_120000 (optimize_indexes)
|
||
│ └── 20250112_000000 (workflow tables)
|
||
│ └── 9cc424e46c07 (quick sales)
|
||
│ └── 20250128_150000 (price list) ⚠️ HEAD
|
||
└── 483a0bf37370 (mobile verified)
|
||
└── b8c9286db6bd (merge) ⚠️ HEAD
|
||
├── 20250115_000001 (fix zohal)
|
||
└── 20250129_120000 (inventory valuation)
|
||
└── a23683863c8a (merge)
|
||
└── 20250205_000001 (repair shop)
|
||
└── 20250205_000002 (seed plugin)
|
||
├── 20250106_000001 (notification)
|
||
└── 20251206_000001 (remove phone/email)
|
||
└── 4d60f85a6561 (merge) ⚠️ BRANCH POINT
|
||
├── 20251207_000001 (activity logs) ⚠️ HEAD
|
||
│ └── 20250108_000001 (optimize tickets) ⚠️ HEAD (مشکل زمانی)
|
||
└── 20251223_001905 (invoice profit) ⚠️ HEAD
|
||
└── 20251223_002500 (ai voice)
|
||
└── 20260101_000001 (is_active)
|
||
└── 20260102_000001 (protect wallet) ⚠️ HEAD
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 راه حلهای پیشنهادی
|
||
|
||
### اولویت 1: رفع مشکل Branch موازی از `4d60f85a6561`
|
||
|
||
**مشکل:** دو branch از `4d60f85a6561` منشعب شدهاند:
|
||
- Branch 1: `20251207_000001` → `20250108_000001`
|
||
- Branch 2: `20251223_001905` → `20251223_002500` → `20260101_000001` → `20260102_000001`
|
||
|
||
**راه حل:**
|
||
1. ایجاد یک merge migration که این دو branch را یکی کند
|
||
2. Merge migration باید به این صورت باشد:
|
||
```python
|
||
revision = 'merge_after_4d60f85a6561'
|
||
down_revision = ('20250108_000001_optimize_ticket_indexes', '20260102_000001')
|
||
```
|
||
|
||
### اولویت 2: رفع مشکل ترتیب زمانی `20250108_000001`
|
||
|
||
**مشکل:** میگریشن `20250108_000001` به میگریشنی اشاره میکند که بعد از آن ایجاد شده
|
||
|
||
**راه حل:**
|
||
1. بررسی کنید که این میگریشن باید به کدام میگریشن اشاره کند
|
||
2. اگر باید بعد از `20251207_000001` اجرا شود، تاریخ آن را تغییر دهید
|
||
3. یا `down_revision` را به میگریشن صحیح تغییر دهید
|
||
|
||
### اولویت 3: اتصال Head های جدا شده
|
||
|
||
**مشکل:** `b8c9286db6bd` و `20250128_150000` هنوز head هستند
|
||
|
||
**راه حل:**
|
||
1. بررسی کنید که آیا این میگریشنها باید به chain اصلی متصل شوند
|
||
2. اگر باید متصل شوند، میگریشنهای بعدی باید به آنها اشاره کنند
|
||
|
||
---
|
||
|
||
## ✅ میگریشنهای Merge موجود
|
||
|
||
1. **`a23683863c8a`** - merge multiple heads before repair shop
|
||
- Parents: `20250203_000001`, `20250115_000001`, `20250129_120000`
|
||
- ✅ به درستی merge شده
|
||
|
||
2. **`4d60f85a6561`** - merge all current heads
|
||
- Parents: `20250106_000001`, `20251204_000001`, `20251205_000001`, `20251206_000001_remove_phone_email_from_repair_orders`
|
||
- ⚠️ بعد از این merge، دو branch جدید ایجاد شده که باید merge شوند
|
||
|
||
3. **`8cb61ffb0637`** - merge warranty and product attributes
|
||
- Parents: `20250120_000002`, `20251202_000001`
|
||
- ✅ به درستی merge شده
|
||
|
||
4. **`010e36975a45`** - merge inventory valuation method
|
||
- Parents: `20240101_120000`, `483a0bf37370`
|
||
- ✅ به درستی merge شده
|
||
|
||
5. **`b8c9286db6bd`** - merge all heads final
|
||
- Parents: `20250112_000000`, `9cc424e46c07`, `20250128_150000`, `483a0bf37370`
|
||
- ⚠️ بعد از این merge، دو child ایجاد شده که بعداً merge شدهاند، اما خود این میگریشن هنوز head است
|
||
|
||
---
|
||
|
||
## 📝 خلاصه مشکلات
|
||
|
||
| مشکل | تعداد | اولویت | وضعیت |
|
||
|------|-------|--------|-------|
|
||
| Multiple Heads | 5 | 🔴 بحرانی | نیاز به رفع |
|
||
| Branch های موازی | 1 (merge نشده) | 🔴 بحرانی | نیاز به رفع |
|
||
| ترتیب زمانی اشتباه | 1 | 🔴 بحرانی | نیاز به رفع |
|
||
|
||
---
|
||
|
||
## 🎯 توصیههای نهایی
|
||
|
||
1. **قبل از deploy:** حتماً یک merge migration برای branch های `4d60f85a6561` ایجاد کنید
|
||
2. **رفع مشکل زمانی:** مشکل `20250108_000001` را رفع کنید
|
||
3. **بررسی Head ها:** بررسی کنید که آیا `b8c9286db6bd` و `20250128_150000` باید head باشند یا نه
|
||
4. **تست:** بعد از رفع مشکلات، حتماً میگریشنها را در محیط test تست کنید
|
||
|
||
---
|
||
|
||
**تهیه شده توسط:** AI Assistant
|
||
**تاریخ:** 2026-01-02
|