web-dev-qa-db-ja.com

Railsでデータベースを破棄/削除する

既存のアプリケーションからデータベースとすべての移行レコードなどを完全に削除して、データベースをゼロから再設計することは可能ですか?

19

rake -Tを発行すると、次のデータベースタスクがあります。

rake db:create          # Create the database from DATABASE_URL or config/database.yml for the current Rails.env (use db:create:all to create all dbs in the config)
rake db:drop            # Drops the database using DATABASE_URL or the current Rails.env (use db:drop:all to drop all databases)
rake db:fixtures:load   # Load fixtures into the current environment's database
rake db:migrate         # Migrate the database (options: VERSION=x, VERBOSE=false)
rake db:migrate:status  # Display status of migrations
rake db:rollback        # Rolls the schema back to the previous version (specify steps w/ STEP=n)
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:seed            # Load the seed data from db/seeds.rb
rake db:setup           # Create the database, load the schema, and initialize with the seed data (use db:reset to also drop the db first)
rake db:structure:dump  # Dump the database structure to db/structure.sql
rake db:version         # Retrieves the current schema version number

したがって、bundle exec rake db:drop:allを発行し、すべての移行を削除する場合、および移行のみを削除する場合は、それらを削除して新しい移行を作成します。

モデルも変更する場合は、Rails d modelを使用します。

50
Paulo Fidalgo

これにより、dbが削除されます。

rake db:drop 

また、移行ごとに:

Rails d migration migration_name
5
stephenmurdoch

はい、データベースと移行を削除できます。

rake db:drop
rake db:rollback
Rails d migration 'migration name'
rake db:create
rake db:migrate
rake db:seed
rake db:test:prepare
0
Dheer