4.2版本,在django框架下做迁移,在pg和mysql下都能正常执行这条语句,但是OB不行。

【 使用环境 】生产环境
【 OB or 其他组件 】Django框架下做migration
【 使用版本 】4.2.2 社区版
【问题描述】】Django框架下做migration,生成的执行语句,在mysql和PG数据库上都能正常执行,但是在ob上就会报错。语句如下:ALTER TABLE erp_cangku_hc ADD COLUMN ck_id_test integer DEFAULT 1 NOT NULL , ADD CONSTRAINT erp_cangku_hc_ck_id_b0ed2312_fk_erp_cangku_id_test FOREIGN KEY (ck_id_test) REFERENCES erp_cangku(id)

【复现路径】问题出现前后相关操作
【附件及日志】表结果如下 :
erp_cangku_hc.zip (1.1 KB)

我先验证一下

erp_cangku的表结构也麻烦提供一下?

OB暂时不支持复合DDL语句,这个DDL变更是两个,如果你拆开单独执行的话是可以的。
ALTER TABLE erp_cangku_hc ADD COLUMN ck_id_test integer DEFAULT 1 NOT NULL , ADD CONSTRAINT erp_cangku_hc_ck_id_b0ed2312_fk_erp_cangku_id_test FOREIGN KEY (ck_id_test ) REFERENCES erp_cangku (id )

1 个赞

一条语句含有两个ddl,可以拆来来执行,估计ob还不支持这种写法

好的,了解了。因为这个是django做迁移时自动生成的语句,并且在oracle,mysql、PG都能正常执行的。希望后面的版本能够增加这样的支持。

可以在github里给我们提个issue的需求吗

好的,可以的。