# قاعدة البيانات: كيف صارت تنبني من الكود

## المشكلة اللي كانت موجودة
- أغلب جداول الموقع (المنتجات، الطلبات، المستخدمين... 117 جدول) جاية من ملف التركيب الأصلي، وما إلها ملفات migration.
- فما كان في طريقة تعمل قاعدة جديدة إلا بنسخ قاعدة اللايف.

## شو عملنا

### 1. الجداول الأساسية صارت بالكود
- كل جدول من الـ 117 إله ملف migration، وفيه **نسخة طبق الأصل** عن شكل الجدول على اللايف (بتاريخ 28 أيلول 2026).
- أسماء الملفات بتبدأ بـ `2000_01_02_`.
- **على قاعدة فاضية:** بتبني الجدول.
- **على قاعدة فيها الجدول (اللايف والتيست):** ما بتعمل شي أبدًا.
- **التراجع (rollback):** ما بيحذف أي جدول.

### 2. البيانات الأساسية (Seeders)
بدون هالبيانات الموقع ما بيفتح على قاعدة جديدة، فعملنا ملفات بتعبّيها:
- اللغات، والعملات، وإعدادات الموقع (بدون أي مفاتيح أو أسرار).
- الدول والمحافظات والمدن، ونصوص الواجهة.
- الأدوار والصلاحيات، وحساب أدمن محلي للتجربة.
- **ما فيها:** زبائن ولا طلبات ولا منتجات.

### 3. حمايات
- الـ seeders **بترفض تشتغل** على أي قاعدة فيها طلبات (يعني اللايف أو نسخة منه).
- الأوامر اللي بتمسح القاعدة (`migrate:fresh` و`db:wipe` وأمثالها) **مرفوضة** على أي قاعدة فيها طلبات.

## كيف تأكدنا
- بنينا قاعدة جديدة من الكود، وطلعت مطابقة لشكل اللايف (الأعمدة والأنواع والفهارس).
- شغّلنا `migrate` على نسخة من اللايف: **ما تغيّر ولا جدول ولا صف**.

## الورك فلو

**مبرمج جديد أو قاعدة جديدة على جهازك:**
1. اعمل قاعدة فاضية.
2. `php artisan migrate`
3. `php artisan db:seed`

**على اللايف أو التيست:**
1. خد نسخة احتياطية.
2. `php artisan migrate` فقط.
3. **ممنوع** `db:seed` (وأصلًا مرفوض).

**بدك تعدّل جدول (عمود جديد مثلًا):**
- اعمل migration جديد عادي بشكل لارفل المعتاد.
- **لا تعدّل** ملفات `2000_01_02_` أبدًا.

## شغلات لازم تعرفها
- أول مرة بيشتغل `migrate` على اللايف، بيطلع حوالي 117 سطر `DONE`. هاد طبيعي: بيسجّل الملفات بس، وما بيغيّر شي.
- الشكل منسوخ من اللايف بتاريخ 28 أيلول. أي تغيير على جداول اللايف بعدها لازم يكون بـ migration جديد.
