Я пытаюсь создать связь внешнего ключа с таблицей Topics.
Проблема в том, что тестовое окружение GitHub Workflow падает по самой странной причине: оно пытается обратиться к полю родительской таблицы, которое больше не существует и было удалено в одном из основных миграций несколько лет назад!
Ошибка: PG::UndefinedColumn: ERROR: column topics.off_topic_count does not exist.
Ну да, потому что это поле было удалено в основной миграции в 2018 году!
Я подтвердил, что эта миграция уже была выполнена в процессе тестирования:
== 20180917024729 RemoveSuperfluousColumns: migrating =========================
== 20180917024729 RemoveSuperfluousColumns: migrated (0.0410s) ================
Я никоим образом явно не ссылаюсь на это старое поле родительской таблицы… Похоже, что SQL генерируется автоматически, но некорректно для текущего определения сущностей.
== 20231119010101 CreateLocationsTopicTable: migrating ========================rake aborted!
[12035](https://github.com/paviliondev/discourse-locations/actions/runs/7039607316/job/19158951878?pr=103#step:19:12036)StandardError: An error has occurred, this and all later migrations canceled: (StandardError)
[12036](https://github.com/paviliondev/discourse-locations/actions/runs/7039607316/job/19158951878?pr=103#step:19:12037)
[12037](https://github.com/paviliondev/discourse-locations/actions/runs/7039607316/job/19158951878?pr=103#step:19:12038)PG::UndefinedColumn: ERROR: column topics.off_topic_count does not exist
[12038](https://github.com/paviliondev/discourse-locations/actions/runs/7039607316/job/19158951878?pr=103#step:19:12039)LINE 1: ...cs"."deleted_at", "topics"."highest_post_number", "topics"."...
Определение таблицы действительно простое:
class CreateLocationsTopicTable < ActiveRecord::Migration[7.0]
def change
create_table :locations_topic do |t|
t.references :topic, foreign_key: true
t.float :latitude, null: false
SNIP
Ещё более странная часть в том, что эта миграция работает в Production!
Буду признателен за любые подсказки!