plugin名を変更した後、migrationをやっていこうとしたとき以下のエラーを検出。
$ rake redmine:plugins:migrate
== 1 CreatePositions: migrating ===============================================
-- create_table(:positions)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "positions" already exists: CREATE TABLE …
やろうとしたことは、既存のmodelを削除して新しいmodelを追加することだったのだが、一個目のmigrationファイルがもう一回実行されたことで、create tableがもう一回走った模様。
migrationは対象のデータベースのschema_migrationsテーブルで管理されているのだが、pluginはどう管理されているか確認してみた。それが以下の通り(どのmigrationを通したかを残す1カラムの表でした)。
[連番]-[plugin名]
なるほど、plugin名を変えるとここが合わなくなるのね。早めに気づけて良かった。
sqlでupdateすることで、うまくmigrationが通りました。