انتقل إلى المحتوى

العمليات — التشغيل المحلي وإعادة الضبط

ما هي

كيفية تشغيل 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-dev401 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 هي الطريقة الحالية لتشغيل النظام. النشر المُستضاف مخطّط — انظر النشر.

ذو صلة