Relation "discourse_automation_automations" restauration de 3.3beta1 à 3.5beta7

J’essaie de restaurer une base de données de

    

vers la version actuelle. J’ai copié le même app.yml et je restaure (nouvelle VM et j’essaie d’éviter la mise à niveau de pg, bien que je devrais peut-être essayer cela au lieu de la restauration)

J’obtiens cette erreur :

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

Cela ressemble à un autre cas où une migration a été réintégrée et ce site a été construit pendant ces quelques commits.

Je ne sais pas quoi faire, cependant. Peut-être supprimer la migration qui essaie de créer cette table ?

Je pense que 3.3beta1 était avant que le plugin ne soit inclus dans le cœur en avril. Cela pourrait-il entraîner des problèmes — par exemple, parce que le plugin est maintenant inclus dans le cœur tout en étant toujours installé séparément via app.yml ?

C’est une bonne idée, mais ce n’est pas ça. Je ne l’inclus plus. Je me demande si j’aurais peut-être dû essayer de l’ajouter (mais je ne la vois pas en y regardant rapidement). Mon idée actuelle est de supprimer toutes les tables d’automatisations (elles sont vides) sur l’ancien site, de faire une nouvelle sauvegarde et d’essayer de la restaurer.

Eh bien, et ensuite ça a échoué parce que discourse_automations_automations était manquant. :person_shrugging:

J’ai donc supprimé ceci :

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

et j’aurais probablement dû supprimer 20190601000001_create_automations_table.rb, mais j’ai plutôt ajouté du code unless table exists (je pense que lorsque je l’ai supprimé, j’avais un autre problème ?).

Et j’ai finalement réussi à le restaurer.

Pouvons-nous clore ce sujet ? Ou le déplacer vers Dev ou Installation > Hosting si vous souhaitez le laisser ouvert ?

Oui. Vous pouvez la fermer. Je ne sais pas si cela arrivera à quelqu’un d’autre, donc cela peut être utile ou non.