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

العمليات — النسخ الاحتياطي والاستعادة لقاعدة البيانات

ما هي

كيفية النسخ الاحتياطي لقاعدة بيانات ManpowerIQ من PostgreSQL واستعادتها. يستخدم ManpowerIQ أدوات PostgreSQL القياسية لهذا — لا يوجد إجراء نسخ احتياطي مخصّص في المشروع؛ فآلية "استعادة خط الأساس" الخاصة بدليل التشغيل هي إسقاط + إعادة إنشاء على مستوى الترحيل، وهي لإعادة الضبط إلى الزرع، لا للحفاظ على البيانات.

نطاق صادق. لـحفظ البيانات الحقيقية واستعادتها، استخدم pg_dump / pg_restore القياسيَّين (أو واجهة النسخ الاحتياطي/الاستعادة في pgAdmin) مقابل قاعدة البيانات المحلية القانونية (Docker postgres:16-alpine). يوثّق المشروع مسار إعادة الضبط، لا دليل نسخ-احتياطي للبيانات — فعامِل الأوامر أدناه كنهج Postgres القياسي، لا كتدفّق خاص بـ ManpowerIQ.

النسخ الاحتياطي (pg_dump)

مقابل Postgres الخاص بـ docker-compose (قاعدة البيانات manpoweriq، المستخدم manpoweriq، المنفذ 5432):

# Custom-format dump (recommended — compress + selective restore)
pg_dump -h localhost -U manpoweriq -d manpoweriq -F c -f manpoweriq_backup.dump

# Or plain SQL
pg_dump -h localhost -U manpoweriq -d manpoweriq -f manpoweriq_backup.sql

في pgAdmin: انقر بزر اليمين على قاعدة بيانات manpoweriqBackup… ← اختر صيغة Custom ← Backup.

الاستعادة (pg_restore)

# Into a fresh/empty database
pg_restore -h localhost -U manpoweriq -d manpoweriq --clean --if-exists manpoweriq_backup.dump

# Plain SQL dump
psql -h localhost -U manpoweriq -d manpoweriq -f manpoweriq_backup.sql

في pgAdmin: انقر بزر اليمين على قاعدة البيانات الهدف ← Restore… ← اختر ملف الـ dump ← Restore.

متى تستخدم أيًّا

الهدف استخدم
الحفاظ على بيانات حقيقية/عملية واستعادتها لاحقًا pg_dump / pg_restore (هذه الصفحة)
إعادة الضبط إلى خط الأساس المزروع (فقدان البيانات) إسقاط + إعادة إنشاء + إعادة الزرع

مزالق / قيود

  • الاستعادة لا تُشغّل ترحيلات EFpg_restore يعيد إنتاج المخطط كما أُخرِج؛ لا يقدّم __EFMigrationsHistory إلى ما بعد حالة الـ dump. للانتقال إلى مخطط أحدث بعد الاستعادة، شغّل dotnet ef database update (انظر الترحيلات).
  • أدوار RLS — دور تطبيق وقت التشغيل مربوط بـ RLS؛ انسخ احتياطيًا/استعِد بصفتك المالك (manpoweriq) الذي لديه BYPASSRLS.
  • مخطط Hangfire منفصل (مخطط hangfire)؛ ضمّنه/استثنِه عمدًا حسب رغبتك في الحفاظ على المهام المُصطفّة.
  • لا تستخدم إسقاط+إعادة إنشاء كـ "نسخ احتياطي" — فهو يتخلّص من البيانات ويستعيد خط الأساس المزروع فقط.

حالة البناء

متاح — أدوات Postgres القياسية تعمل مقابل قاعدة البيانات المحلية الموثّقة. لا يوجد خط أنابيب نسخ احتياطي مؤتمت/مجدول (لا شيء موثّق)؛ سيكون ذلك جزءًا من نشر مُستضاف (انظر النشر).

ذو صلة