根据文档
我可以使用下面的代码来创建一个创建新表的迁移。只是想知道我错过了什么使用这个新功能?我所说的新特性是指文档中的这一行。
多谢!
"由于引入了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