我可以使用下面的代码创建一个创建新表的迁移。 只是想知道使用这个新功能我缺少什么?我所说的新功能是指文档中的这一行。
非常感谢!
“自从 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",
同时检查使用的应用程序类型,请参阅 this issue和 samdark 的回答:
Current advanced is using new migrations style which will be available in 2.0.6 only. Basic does not.
2)只需运行以下命令将框架更新到最新版本:
composer update
关于php - 如何使用 Yii2 架构构建器进行迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31467445/