我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
当前回答
您可以手动执行:
rake db:drop
rake db:create
rake db:migrate
或者只是rake db:reset,它将运行上述步骤,但也将运行您的db/seeds。rb文件。
一个额外的细微差别是rake db:reset直接从您的模式加载。Rb文件,而不是再次运行所有的迁移文件。
你的数据在任何情况下都会消失。
其他回答
您可以使用以下命令行:
rake db:drop db:create db:migrate db:seed db:test:clone
要删除一个特定的数据库,你可以在rails控制台中这样做:
$rails console
Loading development environment
1.9.3 > ActiveRecord::Migration.drop_table(:<table_name>)
1.9.3 > exit
然后再次迁移DB
$bundle exec rake db:migrate
使用像
rake db:drop db:create db:migrate db:seed
都在一行里。这更快,因为环境不会一次又一次地重新加载。
drop -删除数据库。
数据库:create -将创建数据库(主机/ Db /密码将从config/database.yml中获取)
Db:migrate -将从目录(Db /migration/.rb)*运行现有的迁移。
Db:seed -将在目录(Db /migration/seed.rb)中运行种子数据。
我通常喜欢:
rake db:reset
一下子做所有的事。
干杯!
从命令行运行
rake db:migrate:reset
根据Rails指南,应该使用这一行,因为它将从模式加载。Rb,而不是一个一个地重新加载迁移文件:
rake db:reset