我知道 Yii 框架 2.0 迁移的概念。假设我们生成迁移源代码并运行命令,数据库表将根据源代码创建。是否可以基于现有数据库创建迁移源代码?对于源代码,我不是指模型、控制器或 CRUD 类,但我是指迁移源代码。这是某种逆向工程。
以下 yii2 扩展从现有的 MySQL、MSSQL、PgSQL 或 SQLite 数据库生成迁移脚本:
www.yiiframework.com/extension/yii2-migration-utility/
资料来源:www.github.com/c006/yii2-migration-utility
我找到了一种从现有数据库表创建迁移的方法。首先通过 composer require bizley/migration
从这里安装此扩展。然后将以下代码复制到您的config/console.php
:
'controllerMap' => [
'migration' => [
'class' => 'bizley'migration'controllers'MigrationController',
],
],
然后在命令行中键入 php yii migration/update table_name
表示单个表或 php yii migration/create table_name1,table_name2,table_name3
用于多表或php yii migration/create *
用于所有表。
据我所知,Yii 2 中没有开箱即用的功能。否则,必须在文档和框架功能中对其进行说明。
而且,由于RDMS的多样性,实现它并非易事。您可以在 Github 上创建有关此的问题(但请检查在此之前是否已经存在类似的东西),但它不太可能获得高优先级。
我的做法是mysql转储一个sql文件,删除所有不必要的数据,并将其放入源代码中,再加上一些迁移文件,这样我们就可以获得系统的完整模式。