如何使用Yii2模式构建器进行迁移


How to use Yii2 schema builder for a migration?

根据文档

我可以使用下面的代码来创建一个创建新表的迁移。只是想知道我错过了什么使用这个新功能?我所说的新特性是指文档中的这一行。

多谢!

"由于引入了2.0.5模式构建器,它提供了更方便的方式来定义列模式,因此上面的迁移可以像下面这样写:"

use yii'db'Schema;
use yii'db'Migration;
class m150101_185401_create_news_table extends 'yii'db'Migration
{
    public function up()
    {
        $this->createTable('news', [
            'id' => Schema::primaryKey(),
            'title' => Schema::string()->notNull(),
            'content' => Schema::text(),
        ]);
    }
    public function down()
    {
        $this->dropTable('news');
    }
}

但是当我尝试时,我得到一个错误信息。

Yii Migration Tool (based on Yii v2.0.5)
Total 1 new migration to be applied:
    m150717_020723_create_news_table
Apply the above migration? (yes|no) [no]:yes
*** applying m150717_020723_create_news_table
PHP Fatal error:  Call to undefined method yii'db'Schema::primaryKey() in

1)检查composer.json是否包含有效的Yii2版本,例如:

"yiisoft/yii2": ">=2.0.6",

也检查使用的应用程序类型,参见这个问题和samdark的回答:

当前高级正在使用新的迁移样式,该样式将可用仅在2.0.6中。

2)只需运行:

将框架更新到最新版本
composer update