أواجه مشكلة في استعادة نسخة احتياطية من “Discourse 3.5.0.beta9-dev - 04dbc622ab1e0197d16703ba47cf005ec93697ee” إلى الإصدار الحالي (6f06709643fa5e2253606c46f79d089ca3393ac9)
[بدء]
بدأ 'system' الاستعادة!
وضع علامة على الاستعادة بأنها قيد التشغيل...
التأكد من وجود /home/pfaffman/src/discourse-repos/discourse/tmp/restores/default/2025-10-28-201139...
تنزيل الأرشيف إلى مجلد tmp...
استخراج ملف التفريغ...
التحقق من البيانات الوصفية...
الإصدار الحالي: 20251024020353
الإصدار المستعاد: 20250724012518
تمكين وضع القراءة فقط...
إيقاف مؤقت لـ sidekiq...
الانتظار لمدة تصل إلى 60 ثانية لإنهاء sidekiq للمهام قيد التشغيل...
إنشاء الوظائف المفقودة في مخطط discourse_functions...
استعادة ملف التفريغ... (قد يستغرق هذا بعض الوقت)
أمر غير صالح \restrict
استثناء: فشل psql: أمر غير صالح \restrict
إذا قمت بإزالة أوامر printf هذه من database_restorer، فإنها تعمل:
<<~CMD
(
printf '%s\n' "\restrict #{nonce}"
#{sed_command}
printf '%s\n' "\unrestrict #{nonce}"
) | #{self.class.psql_command} 2>&1
CMD
يبدو أن هذا الالتزام هو السبب.
في الإصدار الذي تم فيه إنشاء النسخة الاحتياطية (حاوية cdck docker) لدي هذا:
PostgreSQL 15.13 (Debian 15.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
وهذا هو المكان الذي أحاول فيه الاستعادة (موقع التطوير الذي يعمل بنظام pg15 على الجهاز نفسه):
PostgreSQL 15.13 (Ubuntu 15.13-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
لا أفهم ما يحاول هذا الكود القيام به، لذا أنا مرتبك.