我有一个已经分配了默认值的表。举个例子,我们可以看看以下内容:
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的默认值?
答案 0 :(得分:37)
您可以使用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();
子句。
答案 1 :(得分:1)
您必须致电change function更新专栏
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"/>
答案 2 :(得分:-2)
在CLI中运行以下代码
php artisan migration:refresh
它将更改您的表架构
您的数据将丢失