Laravel 迁移更改了列的默认值
Laravel migrations change default value of column
我有一个已分配默认值的 table。例如,我们可以查看以下内容:
Schema::create('users', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->integer('active')->default(1);
});
我现在想更改活动字段的默认值。我期待做这样的事情:
if (Schema::hasTable('users')) {
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'active')) {
$table->integer('active')->default(0);
}
});
}
但它当然告诉我该专栏已经存在。如何在不删除列的情况下简单地更新列 x 的默认值?
可以使用change()
方法:
Schema::table('users', function ($table) {
$table->integer('active')->default(0)->change();
});
然后运行migrate
命令。
更新
对于 Laravel 4 使用这样的东西:
DB::statement('ALTER TABLE `users` CHANGE COLUMN `active` `active` INTEGER NOT NULL DEFAULT 0;');
内部 up()
方法而不是 Schema::table();
子句。
您必须调用 change function 来更新列
if (Schema::hasTable('users')) {
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'active')) {
$table->integer('active')->default(0)->change();
}
});
}
创建新的迁移文件。并使用 change()
if (Schema::hasTable('users')) {
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'active')) {
$table->integer('active')->default(0)->change();
}
});
}
还要确保将 doctrine/dbal
依赖项添加到 composer.json 文件
我有一个已分配默认值的 table。例如,我们可以查看以下内容:
Schema::create('users', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->integer('active')->default(1);
});
我现在想更改活动字段的默认值。我期待做这样的事情:
if (Schema::hasTable('users')) {
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'active')) {
$table->integer('active')->default(0);
}
});
}
但它当然告诉我该专栏已经存在。如何在不删除列的情况下简单地更新列 x 的默认值?
可以使用change()
方法:
Schema::table('users', function ($table) {
$table->integer('active')->default(0)->change();
});
然后运行migrate
命令。
更新
对于 Laravel 4 使用这样的东西:
DB::statement('ALTER TABLE `users` CHANGE COLUMN `active` `active` INTEGER NOT NULL DEFAULT 0;');
内部 up()
方法而不是 Schema::table();
子句。
您必须调用 change function 来更新列
if (Schema::hasTable('users')) {
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'active')) {
$table->integer('active')->default(0)->change();
}
});
}
创建新的迁移文件。并使用 change()
if (Schema::hasTable('users')) {
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'active')) {
$table->integer('active')->default(0)->change();
}
});
}
还要确保将 doctrine/dbal
依赖项添加到 composer.json 文件