如何在flyway中使用不同数据库的BLOB数据类型?

时间:2013-11-26 08:09:12

标签: database migration blob flyway

是否可以只使用一个SQL脚本在FLYWAY中使用mssyl,mysql和oracle中的BLOB数据类型创建此表?

CREATE TABLE TFILEATTACHMENT (
  ATTACHID decimal(16,0) NOT NULL,
  FILENAME varchar(255) DEFAULT '',
  FILEBLOB blob,
  USERID varchar(10) DEFAULT '',
  PRIMARY KEY (ATTACHID)
);

使用MYSQL和ORACLE下的此脚本,flyway迁移工作正常。但是MSSQL不知道数据类型“blob” - 所以我们在mssql中使用“VARBINARY”类型。 但是,当我们只有一个脚本用于所有数据库时,这将是很好的。

flyway是否有可能将这种db特定的转换从blob处理到例如VARBINARY? 或者是否有更好的“标准”-SQL数据类型,然后是“blob”?

谢谢!

1 个答案:

答案 0 :(得分:0)

解决此问题的最简单方法是使用占位符。然后,您可以定义一个占位符 ${blobDataType} ,其中包含值 FILEBLOB 或值 VARBINARY ,具体取决于在当前环境的配置上。