العلاقة "selected" غير موجودة مع Postgres الخارجية

مرحبًا،
أحاول إعداد خادم Discourse يستضيفه زوج من الخوادم يعملان كزوج احتياطي (failover pair) — ولتحقيق ذلك، أحتاج إلى أن يتصلا بنفس قاعدة البيانات. لدي بالفعل خادم PostgreSQL يعمل في مكان آخر، لذا اتبعت التعليمات هنا، ويبدو أن الاتصال يتم بنجاح. ومع ذلك، عندما أحاول إعادة بناء التطبيق، أواجه الخطأ التالي:

I, [2019-07-23T17:33:20.623719 #14] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle exec rake
db:migrate’
rake aborted!
StandardError: حدث خطأ، وتم إلغاء هذا الانتقال وجميع الانتقالات اللاحقة:

PG::UndefinedTable: ERROR: العلاقة “selected” غير موجودة
LINE 7: OR (t.closed AND tsp.execute_at >= now())
^
: WITH selected AS (
SELECT tsp.id
FROM topic_status_updates tsp
JOIN topics t
ON t.id = tsp.topic_id
WHERE tsp.execute_at < now()
OR (t.closed AND tsp.execute_at >= now())
)

UPDATE topic_status_updates
SET deleted_at = now(), deleted_by_id = -1
WHERE id in (SELECT * FROM selected)

عندما أذهب إلى قاعدة بيانات Discourse، لا توجد جدول “selected” موجود. ما الذي يمكنني فعله لحل هذه المشكلة؟ كان لدي مثيل يعمل عندما كان محليًا على خادم واحد فقط — بدأت هذه المشكلة تحدث فقط بعد نقل قاعدة البيانات.

هل قاعدة البيانات موجودة أصلاً؟

نعم — يوجد 125 جدولًا في المجمل عند وصولي إلى قاعدة البيانات

هذا متوقع، selected في هذه الحالة هو CTE.

ما هو إصدار PostgreSQL “في مكان آخر”؟

الإصدار الذي يعمل على خادم قاعدة البيانات لدينا هو 9.4.22

أوه، هذا قديم جدًا. الإصدار الأدنى المدعوم حاليًا هو PostgreSQL 10.