php - Laravel 迁移更改列的默认值

标签 php laravel migration laravel-artisan

我有一个已经分配了默认值的表。例如,我们可以查看以下内容:

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(); 子句。

关于php - Laravel 迁移更改列的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003469/

相关文章:

php - 在 Laravel 中给老师分配成绩(类(class))和科目(多对多)

php - 显示表的名称而不是其 id Laravel

php - 尝试从表中获取值

javascript - HTML 表单保存到服务器端文本文件

php - 使用 PHP Phar 加密

laravel - CKEditor5 与 vue.js 和 laravel 的集成

php - Laravel 5.5 功能测试说它在工厂提供时缺少一个字段

objective-c - Realm 迁移竞争条件

mysql - MSSQL 到 MySQL 的迁移

android - 如何在 Android 中迁移 Realm