如何在 Flyway 中设置排序规则?
Posted
技术标签:
【中文标题】如何在 Flyway 中设置排序规则?【英文标题】:How to set Collation in Flyway? 【发布时间】:2021-03-01 08:13:19 【问题描述】:我尝试用排序规则创建一个表,如下图:
CREATE TABLE cuisines (
id VARCHAR(40) NOT NULL,
enName VARCHAR(45) NOT NULL,
frName VARCHAR(45) NOT NULL,
spotlight BOOLEAN NOT NULL,
enabled BOOLEAN NOT NULL,
emojis VARCHAR(40),
image_url VARCHAR(255),
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;
但是Flyway说有语法错误,如下图。
[ERROR] Message : Syntax error in SQL statement "CREATE TABLE CUISINES (
[ERROR] ID VARCHAR(40) NOT NULL,
[ERROR] ENNAME VARCHAR(45) NOT NULL,
[ERROR] FRNAME VARCHAR(45) NOT NULL,
[ERROR] SPOTLIGHT BOOLEAN NOT NULL,
[ERROR] ENABLED BOOLEAN NOT NULL,
[ERROR] EMOJIS VARCHAR(40),
[ERROR] IMAGE_URL VARCHAR(255),
[ERROR] PRIMARY KEY (ID)
[ERROR] ) DEFAULT CHARSET=UTF8MB4 COLLATE[*] UTF8MB4_UNICODE_CI ";
有人可以教我如何在 Flyway 中设置排序规则吗?
谢谢!
【问题讨论】:
Flyway、mysql 有哪些版本? 【参考方案1】:我刚刚使用 MySQL 8.0.11 和 Flyway 7.1 尝试了该脚本,并且迁移工作正常。我相信这本身不是 Flyway 错误,它来自数据库 - 这表明 SQL 对于您的 MySQL 版本是错误的。错误消息中的 [*]
很奇怪...在任何阶段都没有出现在您的脚本中?
【讨论】:
不,*
不是我的代码的一部分。我想这是为了指出问题所在。在这种情况下,它是COLLATE
。以上是关于如何在 Flyway 中设置排序规则?的主要内容,如果未能解决你的问题,请参考以下文章
如何在整个数据库中更改 CHARACTER SET(和 COLLATION)?
如何在整个数据库中更改 CHARACTER SET(和 COLLATION)?