مشكلة في الاستعادة: "أمر غير صالح \restrict"

أواجه مشكلة في استعادة نسخة احتياطية من “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

لا أفهم ما يحاول هذا الكود القيام به، لذا أنا مرتبك.

يجب أن تكون على PG 15.14 ويجب عليك التأكد من أن جميع مثيلاتك على هذا الإصدار. هذه الرقعة تعالج مشكلة أمنية كبيرة.

3 إعجابات

أها. هذا شرح بسيط جدًا.

شكرًا. سأعمل على ذلك.

إعجابَين (2)