Relation "discourse_automation_automations" Wiederherstellung von 3.3beta1 zu 3.5beta7

Versuche, eine Datenbank wiederherzustellen von

    <meta name="generator" content="Discourse 3.3.0.beta1-dev - https://github.com/discourse/discourse version a4022f69f31af611bc0e21258b0ccb77dec38ba3">

auf die aktuelle Version. Ich habe dieselbe app.yml kopiert und stelle wieder her (neue VM und versuche, das pg-Upgrade zu umgehen, obwohl ich das vielleicht stattdessen versuchen sollte).

Ich erhalte diesen Fehler:

PG::DuplicateTable: ERROR:  relation "discourse_automation_automations" already exists

Scheint ein weiterer Fall zu sein, bei dem eine Migration zurückgecheckt wurde und diese Seite während dieser wenigen Commits erstellt wurde.

Ich weiß jedoch nicht, was ich tun soll. Vielleicht lösche ich die Migration, die versucht, diese Tabelle zu erstellen?

Die alte Datenbank ist auf 20240122015630 und die neue auf 20250617085536.

Ich sehe dies in der neuen Quelle:

db/migrate/20190601000001_create_automations_table.rb:    create_table :discourse_automation_automations do |t|

Aber irgendwie weiß diese Migration nicht, dass sie diese nicht ausführen soll? Diese Tabelle hat auf beiden Versionen dieselben Felder. Vielleicht lösche ich einfach diese Migration von 2019?

Ich glaube, 3.3beta1 war vor der Aufnahme des Plugins in den Kern im April. Könnte dies zu Problemen führen – zum Beispiel, weil das Plugin jetzt im Kern enthalten ist, aber immer noch separat über app.yml installiert wird?

Das ist eine gute Idee, aber das ist es nicht. Ich nehme es nicht wieder auf. Ich frage mich, ob ich es vielleicht hätte hinzufügen sollen (aber ich sehe es nicht auf den ersten Blick). Meine aktuelle Idee ist, alle Automatisierungstabellen (sie sind leer) auf der alten Website zu löschen, ein neues Backup zu erstellen und zu versuchen, es wiederherzustellen.

1 „Gefällt mir“

Nun, und dann ist es fehlgeschlagen, weil discourse_automations_automations fehlte. :person_shrugging:

Ich habe also diese entfernt:

20210108134117_add_pending_pms_table.rb
20210512090204_add_timestamps_to_automations.rb
20210530122323_move_triggers_to_fields.rb
20211119103353_adds_discourse_automation_user_global_notice.rb
20230412120414_add_prefers_encrypt_field_to_pending_pms.rb

und hätte wahrscheinlich 20190601000001_create_automations_table.rb entfernen sollen, aber stattdessen habe ich Code hinzugefügt, der prüft, ob die Tabelle existiert (ich glaube, als ich sie gelöscht habe, hatte ich ein anderes Problem?).

Und ich habe es endlich wiederhergestellt.

1 „Gefällt mir“

Können wir dieses Thema schließen? Oder es nach Dev oder Installation > Hosting verschieben, wenn Sie es offen halten möchten?

Ja. Sie können es schließen. Ich bin mir nicht sicher, ob es jemand anderem passieren wird, daher ist dies möglicherweise nützlich oder auch nicht.