我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
我有一个充满数据的Ruby on Rails开发数据库。我想删除所有东西,重建数据库。我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
当前回答
根据Rails指南,应该使用这一行,因为它将从模式加载。Rb,而不是一个一个地重新加载迁移文件:
rake db:reset
其他回答
根据Rails指南,应该使用这一行,因为它将从模式加载。Rb,而不是一个一个地重新加载迁移文件:
rake db:reset
您可以使用以下命令行:
rake db:drop db:create db:migrate db:seed db:test:clone
更新:在Rails 5中,这个命令可以通过以下命令访问:
rails db:清除db:创建db:迁移RAILS_ENV=test
在最新的rails 4.2版本中,你现在可以运行:
rake db:purge
来源:提交
# desc "Empty the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV it defaults to purging the development and test databases."
task :purge => [:load_config] do
ActiveRecord::Tasks::DatabaseTasks.purge_current
end
它可以像上面提到的那样一起使用:
rake db:purge db:create db:migrate RAILS_ENV=test
你可以简单地跑
rake db:设置
如果你用一些数据创建了种子文件,它会删除数据库,创建新的数据库并从种子中填充db。
您可以手动执行:
rake db:drop
rake db:create
rake db:migrate
或者只是rake db:reset,它将运行上述步骤,但也将运行您的db/seeds。rb文件。
一个额外的细微差别是rake db:reset直接从您的模式加载。Rb文件,而不是再次运行所有的迁移文件。
你的数据在任何情况下都会消失。