rails ActiveRecord::DuplicateMigrationNameError:
ActiveRecord::DuplicateMigrationNameError:
Multiple migrations have the name DeviseCreateUsers.
問題 同じマイグレーションファイルが2つあった。
対応、マイグレーションファイルはそのまま削除してはいけない。
RailsはDBがバージョンを持っているのでおかしくなる
//リセットする 共同開発では決して利用しないこと rails db:reset //必要なファイルを修正、または削除する // それから rails db:migrate //バージョン確認 rails db:version
必要なファイルを修正、または削除する時
バージョンを確認する
Rails DB関連のコマンド
rails db:create # Creates the database from DATABASE_U... rails db:drop # Drops the database from DATABASE_URL... rails db:environment:set # Set the environment value for the da... rails db:fixtures:load # Loads fixtures into the current envi... rails db:migrate # Migrate the database (options: VERSI... rails db:migrate:status # Display status of migrations rails db:rollback # Rolls the schema back to the previou... rails db:schema:cache:clear # Clears a db/schema_cache.yml file rails db:schema:cache:dump # Creates a db/schema_cache.yml file rails db:schema:dump # Creates a db/schema.rb file that is ... rails db:schema:load # Loads a schema.rb file into the data... rails db:seed # Loads the seed data from db/seeds.rb rails db:setup # Creates the database, loads the sche... rails db:structure:dump # Dumps the database structure to db/s... rails db:structure:load # Recreates the databases from the str... rails db:version
今回は 削除してしまったマイグレーションファイルのバージョンをRailsが保持していたため、dropを実行する。
その後create
その後migrate
ec2-user:~/environment/toto_app (master) $ rails db:drop Dropped database 'db/development.sqlite3' Dropped database 'db/test.sqlite3' ec2-user:~/environment/toto_app (master) $ rails db:create Created database 'db/development.sqlite3' Created database 'db/test.sqlite3' ec2-user:~/environment/toto_app (master) $ rails db:migrate == 20190613074638 DeviseCreateUsers: migrating ================================ -- create_table(:users) -> 0.0011s //省略