Yii2 迁移和 Git 分支

Yii2 migrations and Git branching

关于 Git 分支和 Yii2 数据库迁移的简单问题。 在开发过程中,有时需要更改数据库。 然后我进行新的迁移,我 运行 模型生成器和 CRUD generator anew - 所有控制器、模型和视图文件都被覆盖。 然后我手动将旧代码合并到新代码中。一项乏味的任务,但至少我知道是什么 我正在做。 但是,我有Git。我从未尝试过 Git 的 branching/merge 功能。 我可以创建一个新分支,Model/CRUD 生成的代码将转到该分支, 然后将该分支合并到master?这其中的逻辑步骤是什么?

简短的回答是 - 是的,你可以

使用迁移,您可以轻松拥有不同版本的数据库和代码。开发新功能时,您创建一个新分支,例如git checkout -b feature/new_table,并在其中工作。

如果你需要一个新的数据库table,你create a new migration喜欢这个

$ ./yii migrate/create create_featured_table_table

在新文件中,您描述了创建 table - up() 的过程 并删除它 - down().

如果 up() 中的数据库状态有任何其他更改,您应该在 down() 函数中还原它们。

迁移准备就绪后,您可以migrate/up应用更改并使用新的 table 生成 CRUD。所有更改仅存在于您的分支中。

您可以毫无问题地将此分支合并到 master 中,因为您的数据库已经处于实际状态。

但是如果您需要在不合并更改的情况下检出 master 或其他分支,您应该首先 migrate/down。通过这样做,您将数据库设置为以前的状态,因此它不受当前分支的影响。

当您返回到您的功能分支时,再次 migrate/up 并且数据库中的所有更改都会出现。