git - 在 Git 分支中管理 Laravel 迁移

标签 git migration branch

在我的 Git 存储库中,我有两个主要分支,masterdevelop。然后从 develop 我在开发新功能时创建更多分支。完成开发后,我将 develop merge 到 master 并进行部署。在 Git 中,我还跟踪我的数据库迁移。

现在我的问题是我必须在 master 中进行一些热修复,其中涉及数据库架构修改(= 迁移)。所以我发现自己在生产中有一个数据库结构(master),在开发中有一个不同的结构(develop),还有一些迁移来自develop 应在 master 中的最后一次迁移之前注入(inject) master 应在 develop 中的最后一次迁移之前注入(inject)。

还有一件事是我猜想回滚不应该应用于生产(这可能会丢失生产数据)。

我会找到摆脱这种情况的方法,但我想知道是否有管理此类情况的标准方法,尤其是当您的应用程序正在生产中时。

更新:

我认为下一步应该是将 develop rebase 到 master,从而将 master hot-fix 迁移包括到 develop 中,因为它们是在对 进行任何工作之前进行的开发分支。

这带来了两个问题:

  1. 我有几个分支从 develop 出发,我不知道如何一次 rebase 到 master(如果可能的话)

  2. master hot-fix 中的 Laravel 迁移(在 develop 中的一些迁移已经创建之后创建)将具有时间戳,该时间戳位于 中的时间戳之后em>develop 分支,所以如果我已经玩过master 分支,我不确定develop 迁移是否会执行。

最佳答案

我想你可以从 master 分支出来。我们称它为 BugFix 分支。

  1. 在 BugFix 分支中修复你的错误
  2. 使用 git cherry-pick 命令只选择 BugFix 中要包含到 master 分支中的提交。
  3. 最后,您可以根据需要 rebase 或与开发人员分支 merge 。

希望这对您有所帮助。如果有任何问题,请发表评论。随时准备提供帮助。

关于git - 在 Git 分支中管理 Laravel 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26609988/

相关文章:

docker - 无法创建 'DatabaseContext' 类型的对象。对于设计时支持的不同模式错误

mysql - 如何从 SQL Server 切换到 MySQL 以与 Excel Pivot 一起使用

svn - v1.6 中重新集成 Subversion 分支

GitHub:什么是 "wip"分支?

git - GitHub 和 GitLab 是否支持 git clone 的 --filter 参数?

git - 从 git LFS 中提取所有文件

java - Git:重命名的文件在java中编译时会导致冲突

javascript - Node.JS执行git命令错误: Permission denied (publickey)

delphi - 请说明包装用途

svn - 我可以(以及如何)将从主干创建的补丁应用到分支吗?