我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:

rake db:recreate

这可能吗?


当前回答

你可以使用 Db:reset -用于运行Db:drop和Db:setup或 Db:migrate:reset -运行Db:drop, Db:create和Db:migrate。

依赖于你想要使用现有的模式

其他回答

要删除一个特定的数据库,你可以在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
rake db:create
rake db:migrate

或者只是rake db:reset,它将运行上述步骤,但也将运行您的db/seeds。rb文件。

一个额外的细微差别是rake db:reset直接从您的模式加载。Rb文件,而不是再次运行所有的迁移文件。

你的数据在任何情况下都会消失。

我认为运行这个命令的最好方法是:

**rake db:reset** it does db:drop, db:setup
 rake db:setup does db:create, db:schema:load, db:seed

你可以使用 Db:reset -用于运行Db:drop和Db:setup或 Db:migrate:reset -运行Db:drop, Db:create和Db:migrate。

依赖于你想要使用现有的模式

根据Rails指南,应该使用这一行,因为它将从模式加载。Rb,而不是一个一个地重新加载迁移文件:

rake db:reset