【问题标题】:How to set Collation in Flyway?如何在 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 有哪些版本?

标签: mysql sql flyway


【解决方案1】:

我刚刚使用 MySQL 8.0.11 和 Flyway 7.1 尝试了该脚本,并且迁移工作正常。我相信这本身不是 Flyway 错误,它来自数据库 - 这表明 SQL 对于您的 MySQL 版本是错误的。错误消息中的 [*] 很奇怪...在任何阶段都没有出现在您的脚本中?

【讨论】:

  • 不,* 不是我的代码的一部分。我想这是为了指出问题所在。在这种情况下,它是COLLATE
猜你喜欢
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 2012-08-25
相关资源
最近更新 更多