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
并且数据库中的所有更改都会出现。
关于 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
并且数据库中的所有更改都会出现。