📅  最后修改于: 2023-12-03 15:06:06.432000             🧑  作者: Mango
在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
的数据表中添加两个新的列:mobile
和status
。其中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()
方法,我们可以在数据表中添加新的列。此外,我们还可以单独创建一个新的迁移来添加新的列。这些方法都是非常简单易用的,可以帮助我们更方便地管理我们的数据库。