Ruby on Rails 3ですべての移行を一度に戻す方法は?
-
10-10-2019 - |
質問
実行しようとしました:
rake db:migrate VERSION=0
すべての移行を取り戻します 最後のものを除いて.
それから私は実行しようとしました:
rake db:migrate:down VERSION=<timestamp_of_last_migration>
しかし、それも元に戻りませんでした。なんで ?
すべてを実行するコマンドはありますか down
一度に方法?
解決
データベースがこのプロジェクトにのみ関連し、移行のすべてを元に戻そうとしている場合は、データベースをドロップしてからRake DB:Createを実行します。
次に、空のデータベースを用意します。
それとも、ダウンスクリプトを実行しようとしている別の理由はありますか?
他のヒント
このリストを確認できます。
多分これはあなたを助けることができます
rake db:create[:all]: If :all not specified then create the database defined in config/database.yml for the current RAILS_ENV. If :all is specified then create all of the databases defined in config/database.yml.
rake db:fixtures:load: Load fixtures into the current environment's database. Load specific fixtures using FIXTURES=x,y
rake db:migrate [VERSION=n]: Migrate the database through scripts in db/migrate. Target specific version with VERSION=n
rake db:migrate:redo [STEP=n]: (2.0.2) Revert the database by rolling back "STEP" number of VERSIONS and re-applying migrations.
rake db:migrate:reset: (2.0.2) Drop the database, create it and then re-apply all migrations. The considerations outlined in the note to rake db:create apply.
rake db:reset: Drop and re-create database using db/schema.rb. The considerations outlined in the note to rake db:create apply.
rake db:rollback [STEP=N]: (2.0.2) Revert migration 1 or n STEPs back.
rake db:schema:dump: Create a db/schema.rb file that can be portably used against any DB supported by AR
rake db:schema:load: Load a schema.rb file into the database
rake db:sessions:clear: Clear the sessions table
rake db:sessions:create: Creates a sessions table for use with CGI::Session::ActiveRecordStore
rake db:structure:dump: Dump the database structure to a SQL file
rake db:test:clone: Recreate the test database from the current environment's database schema
rake db:test:clone_structure: Recreate the test databases from the development structure
rake db:test:prepare: Prepare the test database and load the schema
rake db:test:purge: Empty the test database
別の方法があります:
rake db:rollback STEP=100
これにより、最後の100件の移動が戻ります
から取られた http://guides.rubyonrails.org/migrations.html#rolling-back
試す:
rake db:migrate:down VERSION=<timestamp_of_first_migration>
これにより、最初の移行のためにself.downが実行され、本質的にすべてを拭き取ります。少なくとも、それは私のためにやっただけです!
所属していません StackOverflow