【发布时间】:2013-09-02 09:28:31
【问题描述】:
我在 rails 3 应用程序上使用 postgresql。我一直在使用 sqlite3 作为测试环境,但最终决定切换到我在生产中使用的同一个数据库进行测试。问题是,我只为每个环境创建一个数据库和不同的模式。这是我无法改变的,因为环境是受企业限制的。
因此,我有一个测试架构。我运行 db:schema:load 并且它工作正常。我在它上面运行 rake spec(我正在使用 rspec)并且它完全在来自 rails 的 'db:test:purge' 任务上中断了。现在,此任务删除数据库。在我的例子中,不仅数据库所有者与模式所有者不同,而且我宁愿让任务重新创建模式而不是重新创建数据库。
我该怎么做?
【问题讨论】:
-
这可能对您有所帮助...stackoverflow.com/a/6332189/832759 通常我使用
database_cleaner来清理我的测试数据库,但我不确定它是否适用于您的情况...github.com/bmabey/database_cleaner -
对不起,但 database_cleaner 与它没有任何关系。我说的是 rake 任务作为 rake 规范任务的 before 回调被调用。我已经在使用 database_cleaner 来清理规格之间的表。
标签: ruby-on-rails database postgresql testing