فشل الاستعادة مع وجود "hotlinked_media_status" بالفعل

متابعةً للنقاش من فشل الترقية بسبب خطأ مفتاح مكرر (“index post hotlinked media on post id and url md5”):

أحاول الآن استعادة موقع إنتاجي إلى موقع تجريبي وأحصل على:

ERROR:  type "hotlinked_media_status" already exists
EXCEPTION: psql failed: ERROR:  type "hotlinked_media_status" already exists

يا @david هل هناك أي حالة فاتتك بطريقة ما عندما أصلحت هذا من قبل (أعتقد أنه كان يفشل في عمليات الترحيل حينها، وهذا استعادة).

إعجاب واحد (1)

كيف تقوم باستعادة الموقع؟ عبر واجهة المستخدم؟ سطر أوامر discourse؟ psql مباشر؟

من سطر الأوامر، استعادة أحدث نسخة احتياطية (اكتشفت هذه الحيلة sed اليوم، ولكنها كانت نفسها إذا قمت بنسخ/لصق).

$(discourse restore |sed -n '3p')

ويتم استعادة النسخة الاحتياطية من S3 من إصدار أقدم قليلاً:

Discourse 3.4.0.beta1-dev - https://github.com/discourse/discourse version a3d61ba1c43931eb688f9b2b85c207b5bab02b8c

إلى

Discourse 3.4.0.beta2-dev - https://github.com/discourse/discourse version f405c021ebd36d5f11499159bd2b54098356a8f9"

هل يمكنك إعادة إنتاج المشكلة في أي تثبيت آخر؟

من المدهش أن هذه المشكلة تظهر بعد أكثر من عامين، ودون أي تقارير أخرى :thinking:

ربما لا؟ لقد نجحت في استعادة نفس النسخة الاحتياطية على جهاز التطوير الخاص بي.

~~ هل لديك أي فكرة عما قد أكون فعلته للتسبب في ذلك أو ما يمكنني فعله لإصلاحه؟ ~~ لقد أسقطت قاعدة البيانات ومن ثم تمكنت من الاستعادة. كان إسقاط قاعدة البيانات هو الحل الفعلي، لكنني لا أستحق حلاً لمشكلة (يبدو أنني) سببتها.

تم إغلاق هذا الموضوع تلقائيًا بعد 30 يومًا من آخر رد. لم يعد يُسمح بالردود الجديدة.

إحدى الرؤى القيمة جدًا التي توصلت إليها للتو هي أن hotlinked_media_status هو ببساطة أول شيء يحدث في ملف الاستعادة. إذا قمت بإزالته يدويًا في قاعدة البيانات الحالية، فسيفشل الاستعادة في البيان التالي (CREATE TABLE public.admin_notices).

لذا، لا يتعلق الأمر بتعريف هذا النوع المحدد. إنه مجرد عرض لمشكلة أكبر، وأشك في أن BackupRestore.move_tables_between_schemas(MAIN_SCHEMA, BACKUP_SCHEMA) فشل في القيام بما يجب عليه فعله.

إعجاب واحد (1)