yii的数据库迁移提供了一种强大而版本控制的方式来管理数据库架构的更改。核心概念涉及创建迁移类,每个类别代表您数据库的一个原子变化。这些更改通常是表,列,索引和关系的添加,修改或删除。
这是该过程的分解:
yii migrate/create
命令生成新的迁移文件。此命令提示您获取名称,然后将其用于创建PHP类扩展 yii \ db \迁移
。此类将包含 UP()
和 down()
方法。 up()
and and down(): up(code> up(up)
方法> down()方法包含SQL语句以应用Schema更改的更改。 down()
方法包含反向SQL语句撤消这些更改,对于回滚至关重要。 YII提供了诸如 createTable()
, addColumn()
, dropcolumn()
, droptable()等(等)之类的辅助方法,使其更易于编写迁移。根据迁移历史表(基于迁移历史表)已应用。这将执行未应用迁移的方法。 yii迁移/down
命令通过执行其 down()
method的执行命令恢复了最近应用的迁移。您可以指定一个数字来恢复多个迁移。示例:创建用户
表的迁移可能看起来像这样:
<pre class="brush:php;toolbar:false"> <pre class="brush:php;toolbar:false"> <pre class="brush:php;toolbar:false"> <code class="“" php>&lt;?php php php yii \ db \ db \ db \ crigration;类M231027_100000_CREATE_USERS_TABLE扩展迁移{public function UP(){$ this-&gt; createTable('用户',['ID'=&gt; $ gt; $ gt; $ the-&gt; priendarkey(),'userName'=&gt; $ gt; $ gt; $ this-&gt; $ this-&gt; string(255) - &gt; =&gt; $ this-&gt; integer() - &gt; notnull(),]); } public function down(){$ this-&gt; droptable('用户'); }} </code>
编写有效的数据库迁移是维护干净可管理的数据库架构的关键。以下是一些最佳实践:
M231027_100000_ADD_ADD_USER_USER_PROFILE_PROFILE_TABLE_TABLE
)。时间戳前缀确保正确订购。 down()
方法:始终实现 down()
方法,以逆转 up()
的更改。这对于回滚至关重要并确保数据完整性。彻底测试您的 down()
方法。 createTable(createTable)(createTable()
, <code> addcolumn(addcolumn)(addcolumn(Addcolumn)(addcolumn)(Add> code>,
code> code> Addforeignkey() )代替写入RAWR。这改善了不同数据库系统的可读性和可移植性。如果多个开发人员同时在迁移上或迁移失败时,可能会出现冲突。 Yii provides mechanisms to handle these situations:
yii migrate/down
command allows reverting migrations to a previous state, undoing unwanted or failed更改。 up()
方法的任何部分失败,则整个迁移会自动回滚,以保留数据完整性。这就是原因:
但是,如果必须包括种子,则可以在 up()
迁移的方法中添加数据插入逻辑。切记在 down()
方法中包括相应的数据删除,以允许正确回滚。对于大型数据集,通常不建议这种方法。考虑使用 yii迁移/创建
来生成专门用于数据播种的单独迁移,从而使过程更有条理。另外,请考虑使用固定数据或专用数据播种脚本进行较大,更复杂的数据集。
以上是如何使用YII的数据库迁移来管理模式更改?的详细内容。更多信息请关注PHP中文网其他相关文章!