根据这个答案 https://stackoverflow.com/questions/25251186/laravel-migration-update-enum-options,如果我想更新一个,我必须运行一个原始查询enum
在 MySQL 中。但是对于 PostgreSQL,我无法使用此查询,并且 Laravel 中 PostgreSQL 的枚举类型似乎很奇怪。
有什么方法可以更新 postgreSQL 迁移中的枚举吗?
Laravel 使用约束character varying
for enum
.
假设有一张桌子mytable
带有枚举列status
,我们必须删除约束(名为表名_列名_check) 然后将其添加到迁移中,如下所示:
DB::transaction(function () {
DB::statement('ALTER TABLE mytable DROP CONSTRAINT mytable_status_check;');
DB::statement('ALTER TABLE mytable ADD CONSTRAINT mytable_status_check CHECK (status::TEXT = ANY (ARRAY[\'pending\'::CHARACTER VARYING, \'accepted\'::CHARACTER VARYING, \'canceled\'::CHARACTER VARYING]::TEXT[]))');
});
解决了问题,希望能有所帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)