العمليات — النسخ الاحتياطي والاستعادة لقاعدة البيانات
ما هي
كيفية النسخ الاحتياطي لقاعدة بيانات ManpowerIQ من PostgreSQL واستعادتها. يستخدم ManpowerIQ أدوات PostgreSQL القياسية لهذا — لا يوجد إجراء نسخ احتياطي مخصّص في المشروع؛ فآلية "استعادة خط الأساس" الخاصة بدليل التشغيل هي إسقاط + إعادة إنشاء على مستوى الترحيل، وهي لإعادة الضبط إلى الزرع، لا للحفاظ على البيانات.
نطاق صادق. لـحفظ البيانات الحقيقية واستعادتها، استخدم
pg_dump/pg_restoreالقياسيَّين (أو واجهة النسخ الاحتياطي/الاستعادة في pgAdmin) مقابل قاعدة البيانات المحلية القانونية (Dockerpostgres: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: انقر بزر اليمين على قاعدة بيانات manpoweriq ← Backup… ← اختر صيغة 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 (هذه الصفحة) |
| إعادة الضبط إلى خط الأساس المزروع (فقدان البيانات) | إسقاط + إعادة إنشاء + إعادة الزرع |
مزالق / قيود
- الاستعادة لا تُشغّل ترحيلات EF —
pg_restoreيعيد إنتاج المخطط كما أُخرِج؛ لا يقدّم__EFMigrationsHistoryإلى ما بعد حالة الـ dump. للانتقال إلى مخطط أحدث بعد الاستعادة، شغّلdotnet ef database update(انظر الترحيلات). - أدوار RLS — دور تطبيق وقت التشغيل مربوط بـ RLS؛ انسخ احتياطيًا/استعِد بصفتك المالك (
manpoweriq) الذي لديهBYPASSRLS. - مخطط Hangfire منفصل (مخطط
hangfire)؛ ضمّنه/استثنِه عمدًا حسب رغبتك في الحفاظ على المهام المُصطفّة. - لا تستخدم إسقاط+إعادة إنشاء كـ "نسخ احتياطي" — فهو يتخلّص من البيانات ويستعيد خط الأساس المزروع فقط.
حالة البناء
متاح — أدوات Postgres القياسية تعمل مقابل قاعدة البيانات المحلية الموثّقة. لا يوجد خط أنابيب نسخ احتياطي مؤتمت/مجدول (لا شيء موثّق)؛ سيكون ذلك جزءًا من نشر مُستضاف (انظر النشر).
ذو صلة
- التشغيل المحلي وإعادة الضبط · الترحيلات · النشر
- المصدر:
Local_Environment_Runbook.md(قاعدة بيانات docker + إعادة الضبط)؛ PostgreSQLpg_dump/pg_restoreالقياسي.