Ripristino di una migrazione di plugin

Sto lavorando a un plugin (il mio primo tentativo in tal senso).

Il plugin richiede di estendere il database con una nuova migrazione. Sono riuscito a eseguire questa migrazione iniziale utilizzando il comando bin/rake db:migrate.

Ho notato alcuni problemi con la migrazione in seguito e sto cercando di ripristinare il database, quindi modificare ed eseguire nuovamente la migrazione.

Tuttavia, quando eseguo bin/rake db:rollback, ricevo il seguente errore:

rake aborted!
ActiveRecord::UnknownMigrationVersionError: 

Nessuna migrazione con il numero di versione 20210820205029.

Il numero di versione nel messaggio di errore corrisponde alla migrazione del plugin su cui sto lavorando.

Qualche idea?

2 Mi Piace

Sì, al momento non è possibile eseguire il rollback delle migrazioni nelle directory dei plugin. Il metodo che uso è spostare la migrazione nel repository principale:
mv plugins/discourse-example/db/migrate/20210823160357_migration.rb db/migrate/20210823160357_migration.rb

Eseguire il rollback e poi spostarla nuovamente nel plugin:
mv db/migrate/20210823160357_migration.rb plugins/discourse-example/db/migrate/20210823160357_migration.rb

Se la tua migrazione non è l’ultima nella directory db del core, puoi usare bin/rails db:migrate:down VERSION=20210823160357 per selezionare la migrazione che hai appena spostato.

6 Mi Piace

Ottimo trucco, grazie!