首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >rake db:schema:负载与迁移

rake db:schema:负载与迁移
EN

Stack Overflow用户
提问于 2018-03-22 06:08:30
回答 2查看 0关注 0票数 0

这里的问题很简单--如果迁移变得缓慢和繁琐,随着应用程序变得更加复杂,以及我们是否拥有更干净的程序,rake db:schema:load相反,为什么会有迁移呢?

如果以上问题的答案是迁移用于版本控制(数据库更改的逐步记录),那么当应用程序变得更加复杂时,rake db:schema:load is used more instead, do they continue to maintain their primary function?

警告:

根据对这个问题的答复:rake db:schema:load将删除数据在生产服务器上,所以在使用它时要小心。

EN

回答 2

Stack Overflow用户

发布于 2018-03-22 14:49:36

迁移提供了对数据库的向前和向后的步骤更改。在生产环境中,必须在部署期间对数据库进行增量更改:迁移为此功能提供了回滚故障安全。如果在生产服务器上运行rake db:schema:load,则最终将删除所有生产数据。这是一个危险的习惯。

尽管如此,我认为偶尔“崩溃”移民是一种不错的做法。这需要删除旧迁移,用单个迁移(非常类似于您的schema.rb文件)替换它们,并更新“模式”_“迁移”表以反映此更改。在做这件事时要非常小心!如果不小心,您可以很容易地删除生产数据。

顺便提一句,我坚信您永远不应该将数据创建放在迁移文件中。rb文件可用于此目的,也可用于自定义的rake或部署任务。将其放入迁移文件中会将数据库模式规范与数据规范混合,并可能导致运行迁移文件时发生冲突。

票数 0
EN

Stack Overflow用户

发布于 2018-03-22 15:28:15

只是偶然发现了这篇文章,那是很久以前的事了,没有看到我期待的答案。

rake db:schema:load这是你第一次把系统投入生产。之后,应该正常运行迁移。

这还可以帮助您随时清理迁移,因为模式包含所有信息,可以将其他机器放到生产中,即使在清理迁移时也是如此。

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

https://stackoverflow.com/questions/-100007734

复制
相关文章

相似问题

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