Ich versuche, eine Fremdschlüsselbeziehung mit der Topics-Tabelle zu erstellen.
Das Problem ist, dass sie in der GitHub Workflow-Testumgebung aus seltsamsten Gründen während der Tests fehlschlägt. Sie versucht, auf ein Feld aus der übergeordneten Tabelle zuzugreifen, das nicht mehr existiert und vor Jahren in einer Kernmigration entfernt wurde!
Der Fehler lautet PG::UndefinedColumn: ERROR: column topics.off_topic_count does not exist
Nun ja, weil es in einer Kernmigration im Jahr 2018 entfernt wurde!
Ich habe bestätigt, dass dies während des Testprozesses bereits ausgeführt wurde:
== 20180917024729 RemoveSuperfluousColumns: migrating =========================
== 20180917024729 RemoveSuperfluousColumns: migrated (0.0410s) ===============
Ich beziehe dieses alte Feld der übergeordneten Tabelle in keiner Weise explizit … es scheint die SQL-Abfrage selbst zu generieren … aber unangemessen für die aktuelle Definition der Dinge.
== 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"...
Die Tabellendefinition ist wirklich einfach:
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
Das noch seltsamere ist, dass diese Migration in der Produktion funktioniert!
Jede Einsicht ist sehr willkommen!