首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >警告:当您运行"rake“时,定义为"test”的数据库将被擦除并从您的开发数据库中重新生成。

警告:当您运行"rake“时,定义为"test”的数据库将被擦除并从您的开发数据库中重新生成。
EN

Stack Overflow用户
提问于 2012-01-04 02:00:12
回答 3查看 629关注 0票数 0

我在新生成的Rails3.1项目的database.yml中注意到了这一点:

代码语言:javascript
运行
复制
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".

这到底是什么意思?这是否意味着即使我运行rake routes,它也会擦除并重新生成我的测试数据库?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-04 02:15:01

rake routesrake不同

当您运行rake时,您是在告诉rake您并没有指定要运行的任务。按照惯例,Rails已将其设置为为您运行单元测试。因此,当您运行rake routes时,您已经指定了一个任务,它将不会运行单元测试。

另外:在运行迁移之后,继续运行:rake db:test:prepare

否则,您的测试DB将不会知道您的新迁移。

票数 4
EN

Stack Overflow用户

发布于 2012-01-04 02:12:10

当你最终销毁你的测试数据库时(相信我,这是会发生的),你可以根据开发数据库中定义的规范从头开始重建它。您可以通过运行rake :test:prepare来完成此操作。

来自Rails Guides

代码语言:javascript
运行
复制
# Do not set this db to the same as development or production.

来自database.yml

这意味着如果您将在developmenttest环境中使用相同的数据库,您可能会丢失数据。rake routes不会影响数据库中的数据

票数 0
EN

Stack Overflow用户

发布于 2012-01-04 02:18:25

当您在rails (使用rake test)中运行测试时,它所做的第一件事就是重新创建测试数据库。在rails应用程序中运行rake时的默认任务是test,因此不带参数的rakerake test相同。

当您运行其他rake任务(如rake routes)时,它不会擦除您的数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8716611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档