在Rails中销毁/删除数据库

fea*_*net 19 database sqlite activerecord rails-migrations ruby-on-rails-3

是否可以从现有应用程序中完全删除数据库和所有迁移记录等,以便我可以从头开始重新设计数据库?

Pau*_*lgo 50

通过发布,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
Run Code Online (Sandbox Code Playgroud)

因此,要发布bundle exec rake db:drop:all并且如果要删除所有迁移,并假设您只想删除迁移,请删除它们并编写新迁移.

如果您也想更改模型,请使用rails d model.


ste*_*och 6

这将摆脱数据库:

rake db:drop 
Run Code Online (Sandbox Code Playgroud)

对于每个迁移:

rails d migration migration_name
Run Code Online (Sandbox Code Playgroud)