use*_*986 19 enums laravel eloquent
我有一个包含枚举字段的表
CREATE TABLE `user_status` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`values` enum('on', 'off'),
PRIMARY KEY (`id`),
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
如何创建迁移以向枚举字段添加值?
Ale*_*ski 51
Laravel不提供更新枚举列的方法.您可以删除并重新创建列,但在操作期间可能会丢失数据并且它不是很干净.
在这种情况下,我认为最好的选择是将原始SQL写入迁移:
public function up()
{
DB::statement("ALTER TABLE user_status MODIFY COLUMN values ENUM('on','off','unknown')");
}
public function down()
{
DB::statement("ALTER TABLE user_status MODIFY COLUMN values ENUM('on','off')");
}
Run Code Online (Sandbox Code Playgroud)
我可能在SQL语法中犯了一个错误,我从未使用过ENUM,但无论如何你都可以看到这个想法.
我用 MySql 做到了:
class ChangeJobTypeEnum extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::statement("ALTER TABLE _TABLENAME_ CHANGE _COLUMNNAME_ _COLUMNNAME_ ENUM('on', 'off', 'auto')");
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::statement("ALTER TABLE _TABLENAME_ CHANGE _COLUMNNAME_ _COLUMNNAME_ ENUM('on', 'off')");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13134 次 |
| 最近记录: |