在Rails 4中重置数据库

时间:2015-03-04 07:18:20

标签: git ruby-on-rails-4 sqlite

所以我在git中创建了一个新的分支,继续迈克尔哈特尔第三版的建议。我使用rails console创建了一个新用户,以便我可以设置用户页面(此时我们没有注册表单)。所以按照说明说明

  

因为我们即将添加通过创建新用户的能力   web,让我们删除在6.3.4节中在控制台创建的用户。   最简单的方法是使用bundle exec rake db:migrate:reset

重置数据库

我的印象是db:reset假设要转储当前数据库并从schema.rb重建它,但对我来说它会删除我的架构中的所有内容,并将其留空并且我必须复制早期版本我的架构来自另一个分支。

我有什么不正确或俯视的东西吗?我以为我理解了db :: xxxx命令,但显然不如我愚弄自己想到哈哈。

1 个答案:

答案 0 :(得分:0)

不,这是预期的行为。除非您提供种子日期,否则每次运行测试时测试数据都会重置。您应该查看Factory Girl来为您的测试数据库构建对象:https://github.com/thoughtbot/factory_girl

Hartl在本书/教程后面介绍了Factory Girl,所以你可能还没有完成那部分。

所以你是部分正确的; rake db:reset将重建您的架构,但所有数据都将被销毁。使用现有数据库的副本进行测试是个坏主意。

要重建我通常运行的模式:

rake db:test:prepare

每次都有效。