我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
当前回答
因为在开发过程中,您总是希望重新创建数据库,所以可以在lib/tasks文件夹中定义一个rake任务。
namespace :db do
task :all => [:environment, :drop, :create, :migrate] do
end
end
在终端中运行
rake db:all
它将重新构建数据库
其他回答
根据你想要的,你可以使用…
rake db:创建
从config/database中从头构建数据库。yml,还是……
rake db:模式:负载
根据您的模式从头构建数据库。rb文件。
我在Terminal中使用了以下一行。
$ rake db:drop && rake db:create && rake db:migrate && rake db:schema:dump && rake db:test:prepare
我将其作为shell别名,并将其命名为remigrate
到现在为止,你可以很容易地“链接”Rails任务:
$ rake db:drop db:create db:migrate db:schema:dump db:test:prepare # db:test:prepare no longer available since Rails 4.1.0.rc1+
你可以使用 Db:reset -用于运行Db:drop和Db:setup或 Db:migrate:reset -运行Db:drop, Db:create和Db:migrate。
依赖于你想要使用现有的模式
您可以使用以下命令行:
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