php - 如何使用 Yii2 架构构建器进行迁移?

标签 php yii2 database-migration

根据documentation

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

非常感谢!

“自从 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/

相关文章:

javascript - JQuery Tablesorter 不会对 session 脚本加载的 MySQL PHP 表进行排序

php - 处理 php 中的特定异常

php - 如何从一个 HTML 输入设置另一个输入

Yii2,登录时从前端重定向到后端?

android - 从 2 迁移到 1 是必要的,在 Room

PHP 类在运行 PHPUnit 测试用例时解决同一目录中类的问题

php - 如何使用Yii2删除文件夹和内容?

mysql - Yii2 查询群组中的用户

sql - 我们可以在 PostgreSQL 中定义一个 GROUP_CONCAT 函数吗?

python - 如果字段的选择列表发生变化,则停止 Django 创建迁移