首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Git分支和Rails迁移

如何使用Git分支和Rails迁移
EN

Stack Overflow用户
提问于 2011-01-19 20:10:10
回答 12查看 24.5K关注 0票数 138

我正在开发一个带有相当多git分支的rails应用程序,其中许多分支都包含数据库迁移。我们尽量小心,但偶尔master中的一些代码会请求在另一个分支中删除/重命名的列。

将git分支与DB states?“耦合”起来,

  1. What将是一个很好的解决方案

这些“状态”真的会是吗?

如果数据库的大小只有几GB,我们就不能简单地复制它。

  1. And merges?

应该发生什么?

  1. Would解决方案也可以转换为noSQL数据库?

我们目前使用MySQL,mongodb和redis

编辑:看起来我忘了提到一个非常重要的点,我只对开发环境感兴趣,但是有很大的数据库(几GB大小)。

EN

回答 12

Stack Overflow用户

发布于 2011-01-19 21:39:11

在任何分支中添加新迁移时,请运行rake db:migrate并同时提交迁移 db/schema.rb

如果这样做,在开发中,您将能够切换到具有不同迁移集的另一个分支,并简单地运行rake db:schema:load

请注意,这将重新创建整个数据库,并且现有数据将丢失

您可能只想在一个非常小心的分支上运行生产,所以这些步骤在那里不适用(只需像往常一样在那里运行rake db:migrate )。但在开发过程中,从模式重新创建数据库应该没什么大不了的,这正是rake db:schema:load要做的。

票数 69
EN

Stack Overflow用户

发布于 2011-01-20 23:14:45

如果您有一个不容易复制的大型数据库,那么我建议您使用普通的迁移工具。如果你想要一个简单的过程,这是我推荐的:

  • 在切换分支之前,回滚(rake db:rollback)到分支点之前的状态。然后,在切换分支之后,运行db:migrate。这在数学上是正确的,只要您编写down脚本,它就会工作。
  • 如果您在切换分支之前忘记了执行此操作,通常您可以安全地切换回、回滚和再次切换,所以我认为作为一种工作流,它是可行的。
  • 如果您在不同分支中的迁移之间存在依赖关系...嗯,你得好好想一想。
票数 23
EN

Stack Overflow用户

发布于 2012-11-15 14:57:36

下面是我编写的一个脚本,用于在包含不同迁移的分支之间进行切换:

https://gist.github.com/4076864

它不会解决你提到的所有问题,但给出一个分支名称,它会:

  1. 回滚当前分支上不存在于给定分支上的任何迁移
  2. 放弃对db/schema.rb文件的任何更改
  3. 签出给定分支
  4. 运行给定分支中存在的任何新迁移

<代码>H110更新测试数据库<代码>H211<代码>G212

我发现我自己在我们的项目中一直在手动做这件事,所以我想自动化这个过程会很好。

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

https://stackoverflow.com/questions/4735058

复制
相关文章

相似问题

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