我正在使用 H2 与 Liquibase 进行集成测试,但似乎存在兼容性问题。
一个简单的更改列函数不会在 H2 上传递,它在 MySQL 发行版上完美运行。
这里是查询:
ALTER TABLE `designs` ALTER COLUMN `description` `description` TEXT NULL DEFAULT NULL AFTER `created`;
错误:
2014-06-07 14:27:05,708 [DEBUG] [NewPooledConnection,handleThrowable(),430] - com.mchange.v2.c3p0.impl.NewPooledConnection@78af2ac3 handling a throwable. org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "ALTER TABLE DESIGNS ALTER COLUMN DESCRIPTION TEXT NULL DEFAULT NULL AFTER[*] CREATED "; SQL statement: ALTER TABLE designs ALTER COLUMN description TEXT NULL DEFAULT NULL AFTER created [42000-178] at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
一些配置:
repository.connectionString = jdbc:h2:mem:db;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE repository.driver = org.h2.Driver repository.username = sa repository.password =
有什么解决办法吗?据我了解H2应该与Mysql兼容
最佳答案
As documented ,H2(在一定程度上)与其他数据库兼容,例如 HSQLDB、MySQL 和 PostgreSQL。但在某些领域 H2 是不兼容的。
关于mysql - H2 和 MySQL 兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096721/