重置数据库(全部清除),然后播种数据库


Answers:



160

您可以删除所有内容,并使用以下两种方法重新创建数据库+种子:

  1. rake db:reset:从schema.rb加载
  2. rake db:drop db:create db:migrate db:seed:来自迁移的负载

确保您没有与数据库的连接(Rails服务器,SQL客户端..),否则数据库不会丢失。

schema.rb是由以下人员生成的数据库当前状态的快照:

rake db:schema:dump

感谢您提醒人们关闭所有服务器,以确保正确删除数据库。
aardvarkk

6

如果您不想删除并重新创建整个shebang只是为了重新加载数据,则可以在种子加载数据之前使用seed.db文件中的MyModel.destroy_all(或delete_all)清除表MyModel.create!(...)。然后,您可以db:seed一遍又一遍地重做该操作。(显然,这只会影响您已将数据加载到其中的表,而不会影响其余的表。)

https://stackoverflow.com/a/14957893/4553442上有一个“肮脏的hack”,它添加了类似于上下迁移的“去种子”操作...


聪明,每一次从头开始重新创建一切都花了我很长时间
m02ph3u5

5

铁轨5中,rake命令行工具已别名为rails所以现在

rails db:reset 代替 rake db:reset

也会一样好


0

rake db:reset当您要删除本地数据库并从加载的数据重新开始时,可以使用db/seeds.rb。当您仍然需要确定模式时,这是一个有用的命令,并且经常需要将字段添加到现有模型中。

使用reset命令后,它将执行以下操作:删除数据库:rake db:drop 加载模式:rake db:schema:load 播种数据:rake db:seed

但是,如果要完全删除数据库,可以使用rake db:drop。删除数据库还将删除所有架构冲突或错误数据。如果要保留已有的数据,请确保在运行此命令之前对其进行备份。

这是有关最重要的rake数据库命令的详细文章。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.