首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除Rails应用程序中的旧迁移文件

删除Rails应用程序中的旧迁移文件
EN

Stack Overflow用户
提问于 2013-11-21 11:13:44
回答 3查看 8.8K关注 0票数 22

如果模式是稳定的,是否允许在Rails应用程序中删除(或存档)旧迁移文件?

我的迁移很多,我怀疑其中可能有一些问题,因为我偶尔会在Heroku上迁移数据库时遇到问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-21 11:19:28

您不需要在Rails应用程序中保留旧的迁移文件,因为您的数据库模式应该在schema.rb或一个可用于重新生成模式的等效SQL文件中捕获。

迁移不是数据库架构的权威来源。该角色由db/schema.rb或活动记录通过检查数据库生成的SQL文件承担。它们不是为编辑而设计的,它们只是表示数据库的当前状态。

不需要(而且容易出错)通过重播整个迁移历史来部署应用程序的新实例。将当前模式的描述加载到数据库中(这是在schema.rb或SQL文件中)要简单得多,也要快得多。

这个文件应该是版本化的,并保存在源代码管理中。

若要设置自动schema.rb生成,请通过config.active_record.schema_format设置修改config.active_record.schema_format/application.rb,该设置可能是:ruby :sql。如果选择了ruby,那么模式将存储在db/schema.rb中。如果选择了SQL,架构将以数据库的本机SQL格式转储。

票数 40
EN

Stack Overflow用户

发布于 2017-12-09 22:50:24

你可以删除你以前的迁移。完成此操作后,当您设置应用程序时,需要运行:

代码语言:javascript
运行
复制
rake db:schema:load

而不是:

代码语言:javascript
运行
复制
rake db:migrate
票数 5
EN

Stack Overflow用户

发布于 2019-04-26 14:30:39

下面是我所做的,我发现了在生产ActiveRecord::SchemaMigration.last.version上迁移的最后一个版本,并在源代码中删除了之前的所有迁移。

这不是最好的方法,但我做了find db/migrate -type f,复制了上一个版本之前的文件列表和pbpaste | rm (macos)。

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

https://stackoverflow.com/questions/20119391

复制
相关文章

相似问题

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