【发布时间】:2012-07-30 21:39:40
【问题描述】:
我继承了一个 Rails 项目,其中(SQLite)开发和测试数据库是相同的,如 database.yml 文件。
这样做有什么好处吗?为什么会有人这样做?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 sqlite
我继承了一个 Rails 项目,其中(SQLite)开发和测试数据库是相同的,如 database.yml 文件。
这样做有什么好处吗?为什么会有人这样做?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 sqlite
测试数据库通常会被测试覆盖(除非您使用事务性固定装置)。如果测试和开发数据库相同,则每次运行测试套件时都会删除您的数据。开发数据可能会干扰测试套件并使其不可靠。
我很清楚地认为这是一个设计错误。没有理由,你应该这样做。甚至新创建的 Rails 应用程序中的 database.yml 也指出:
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
【讨论】:
这样做没有任何好处。有缺点。测试和开发或生产数据库应该是不同的。很多人将测试和开发设置保持不变,这并不是什么大问题,因为最重要的是生产数据库。这就是我能想到的原因,这就是之前的开发者。在项目上这样做。不过不应该是这样的。
【讨论】: