📜  yii2 迁移添加列 - PHP (1)

📅  最后修改于: 2023-12-03 15:06:06.432000             🧑  作者: Mango

yii2 迁移添加列 - PHP

在Yii2中,我们可以通过迁移来对数据库进行管理。迁移是对数据库变更的记录,我们可以通过迁移记录数据表的添加、删除、修改等操作。本篇文章将介绍如何在Yii2迁移中添加新的数据表列。

步骤

在Yii2中,我们可以使用yii\db\Migration类来创建迁移。在该类中,我们可以通过addColumn()方法来添加新的表列,下面是一个演示代码示例:

use yii\db\Migration;

class m200201_130307_create_user_table extends Migration
{
    public function up()
    {
        $this->createTable('user', [
            'id' => $this->primaryKey(),
            'username' => $this->string()->notNull(),
            'email' => $this->string()->notNull(),
            // add new column
            'mobile' => $this->string()->notNull(),
            // add new column with default value
            'status' => $this->smallInteger(6)->notNull()->defaultValue(10),
        ]);
    }

    public function down()
    {
        $this->dropTable('user');
    }
}

上述代码演示了如何在一个名为user的数据表中添加两个新的列:mobilestatus。其中mobile列是不可为空的字符串类型,status列是不可为空的小整数类型,默认是10。

在这个示例代码中,我们使用了notNull()defaultValue()方法来设置新列的约束条件。这些方法都是yii\db\SchemaBuilder类的方法,用于设置数据库表结构的各种约束。

除了使用类似上述代码那样在一个迁移中添加新的列之外,我们还可以使用单独的迁移来添加新的列。例如,如果我们已经有一个名为user的数据表,我们可以创建一个新的迁移来添加新的列,如下所示:

use yii\db\Migration;

class m200201_140312_add_mobile_to_user_table extends Migration
{
    public function up()
    {
        $this->addColumn('user', 'mobile', $this->string()->notNull());
    }

    public function down()
    {
        $this->dropColumn('user', 'mobile');
    }
}

上述代码演示了如何为user数据表添加一个名为mobile的新列。该列是一个不可为空的字符串类型。

到此为止,我们已经可以在Yii2迁移中添加新的数据表列了。

结论

在Yii2中,我们可以使用yii\db\Migration类来创建数据库迁移。通过使用addColumn()方法,我们可以在数据表中添加新的列。此外,我们还可以单独创建一个新的迁移来添加新的列。这些方法都是非常简单易用的,可以帮助我们更方便地管理我们的数据库。