在我的迁移中,我有一个名为“assets.status”的表列,数据类型为ENUM。默认值设置为“活动”,我想通过将其更改为“处理”来修改它。
答案 0 :(得分:3)
您需要创建新的迁移并使用change()
方法。
https://laravel.com/docs/5.6/migrations#modifying-columns
Schema::table('users', function (Blueprint $table) {
$table->string('name', 50)->change();
});
作为提示:每当您需要将数据库更改为生产数据库时,您都不应该修改现有的迁移。始终创建新的迁移,即使是小的更改。
更新的答案
由于您无法使用Schema方法更新枚举类型,因此可以使用基础数据库外观手动更新列:
public function up()
{
\DB::statement("
ALTER TABLE table_name CHANGE column_name column_name ENUM('option1','option2') DEFAULT option1
");
}
public function down()
{
\DB::statement("
ALTER TABLE table_name CHANGE column_name column_name ENUM('option1','option2') DEFAULT previous_default_column
");
}