العمليات — التشغيل المحلي وإعادة الضبط
ما هي
كيفية تشغيل ManpowerIQ محليًا وكيفية إعادة ضبط قاعدة البيانات إلى خط أساس نظيف. هذه هي الطريقة الحالية المدعومة لتشغيل النظام — المصدر هو دليل تشغيل البيئة المحلية (Local_Environment_Runbook.md)، وهو مصدر حقيقة العمليات.
التشغيل محليًا
1. قاعدة البيانات — قاعدة البيانات المحلية القانونية هي Docker postgres:16-alpine (حسب docker-compose.yml):
docker compose up -d
2. الاعتماديات
dotnet restore ManpowerIQ.sln
# (web) npm install
3. تطبيق الترحيلات — صراحة؛ الـ API لا يُرحّل عند الإقلاع:
dotnet ef database update --project src/ManpowerIQ.Infrastructure --startup-project src/ManpowerIQ.API
4. تشغيل الـ API
dotnet run --project src/ManpowerIQ.API
- API:
http://localhost:5159· Swagger UI:http://localhost:5159/swagger· الصحة:GET /api/health.
5. تشغيل تطبيق الويب
npm run dev # Vite → http://localhost:5173
سجّل الدخول بمستخدم تجريبي (مثلًا عبر POST /api/auth/login-dev في Development) — انظر دليل التشغيل §6 للحسابات.
إعادة الضبط إلى خط أساس نظيف
إعادة الضبط المدعومة هي إسقاط + إعادة إنشاء، لا اقتطاع — فترحيلات بيانات الزرع غير عديمة-الأثر مقابل الاقتطاع (PB-025؛ انظر الترحيلات):
dotnet ef database drop -f --project src/ManpowerIQ.Infrastructure --startup-project src/ManpowerIQ.API
dotnet ef database update --project src/ManpowerIQ.Infrastructure --startup-project src/ManpowerIQ.API
ثم أعد تطبيق مجموعة البيانات التجريبية إن لزم (DemoDataSeeder، دليل التشغيل §11 / §"seeder round-trip"). أوامر التنظيف المدمّر الكاملة في دليل التشغيل §11.
مزالق / قيود
- لا ترحيل-عند-الإقلاع — طبّق الترحيلات قبل تشغيل الـ API (صُحِّح مقابل دليل التشغيل في المرحلة 3).
- إعادة الضبط = إسقاط + إعادة إنشاء — الاقتطاع يترك
__EFMigrationsHistoryمتقدّمًا على الصفوف؛ العلامة الفارقة هيPOST /api/auth/login-dev→401 Unknown userمع أعداد صفوف صفرية. - استعد
application_settingsبعد اختبارات التحقق السريع (PB-046) — تبديل إعداداتpassword.require_*ونسيان استعادتها يُفشل جولة Domain.Tests؛ دليل التشغيل §"CRITICAL" به سكربت الاستعادة. - استعد مفتاح Skip لـ DemoDataSeeder بعد جولة-ذهاب-وإياب للزارع، وإلا فإن
dotnet testسيُشغّل الزارع مقابل قاعدة بيانات التطوير. - مخطط Hangfire يُثبَّت ببوابة إقلاع؛ استعادة التلف هي
DROP SCHEMA hangfire CASCADE;يدويًا (دليل التشغيل §5).
حالة البناء
متاح — docker-compose المحلي + dotnet run + npm run dev هي الطريقة الحالية لتشغيل النظام. النشر المُستضاف مخطّط — انظر النشر.
ذو صلة
- الترحيلات · النسخ الاحتياطي والاستعادة لقاعدة البيانات · النشر
- المصدر:
Local_Environment_Runbook.md§1–§11؛ PB-025، PB-046.