gpt4 book ai didi

php - 更改 ENUM 列并将值添加到 Laravel 中的该列

转载 作者:行者123 更新时间:2023-12-02 04:25:34 25 4
gpt4 key购买 nike

我有一个 MySQL 具有名为 user_level_attempt 的表的数据库。那个表有一个 枚举 键入列['进展','停止','完成'] 值。我需要编写一个迁移来向该列添加另一个值(比如“PASSED”)。添加后,它看起来像这样, ['进展','停止','完成','通过] .我怎么能在 Laravel 中做到这一点?
我尝试了以下解决方案,但它似乎不是一个好的做法/解决方案。

 /**
* Schema table name to migrate
* @var string
*/
public $set_schema_table = 'bt_user_level_attempt';


/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table($this->set_schema_table, function ($table) {
$table->dropColumn('status');
});

Schema::table($this->set_schema_table, function ($table) {
$table->enum('status', ['PROGRESS', 'STOPPED', 'COMPLETED', 'PASSED'])->default('PROGRESS')->after('effective_time_spend');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table($this->set_schema_table, function ($table) {
$table->dropColumn('status');
});

Schema::table($this->set_schema_table, function ($table) {
$table->enum('status', ['PROGRESS', 'STOPPED', 'COMPLETED'])->default('PROGRESS')->after('effective_time_spend');
});
}

谢谢你。

最佳答案

毕竟,我想办法找到解决办法。感谢所有给我启发的小伙伴。 :)

/**
* Schema table name to migrate
* @var string
*/
public $set_schema_table = 'bt_user_level_attempt';


/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::statement("ALTER TABLE ".$this->set_schema_table." MODIFY COLUMN status ENUM('PROGRESS', 'STOPPED', 'COMPLETED', 'PASSED') NOT NULL DEFAULT 'PROGRESS'");
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::statement("ALTER TABLE ".$this->set_schema_table." MODIFY COLUMN status ENUM('PROGRESS', 'STOPPED', 'COMPLETED') NOT NULL DEFAULT 'PROGRESS'");
}

关于php - 更改 ENUM 列并将值添加到 Laravel 中的该列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54806693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com