【发布时间】:2019-06-07 04:20:31
【问题描述】:
我正在尝试可能在我们的项目中使用的 Flyway,因此我有一个非常简单的迁移脚本。然而,我似乎设置错误 - flyway 成功连接到我的数据库(SQL Server 2008 R2)以创建元数据表,但是当我运行脚本时,我得到了
[ERROR] Failed to execute goal com.googlecode.flyway:flyway-maven-plugin:2.2.1:migrate (default-cli) on project persistence: com.googlecode.flyway.cor
e.api.FlywayException: Migration of schema [dbo] to version 1.1 failed! Changes successfully rolled back. Incorrect syntax near '?'. -> [Help 1]
我的脚本是:
ALTER TABLE msg.Message
ADD Deleted bit NULL
查看调试日志,flyway 输出:
[DEBUG] Executing SQL: ??A L T E R T A B L E m s g . M e s s a g e
A D D D e l e t e d b i t N U L L
我不知道问号是从哪里来的,也不知道为什么文本中有空格。有什么想法吗?
【问题讨论】:
-
我对 Flyway 不太有信心,但是您不需要以
;结束您的 SQL 语句吗?由于您的脚本是一个 SQL 文件 ... -
这可能是编码问题吗? Flyway 需要 UTF-8。你用的是哪一个?
-
原来是 UTF-8 - 我使用的是 SQL Server Management Studio 2008 生成的文件。我的各个脚本现在运行正常,但我的初始数据库迁移完全失败。现在我将手动处理初始迁移,让 Flyway 处理补丁脚本。
-
您是否尝试将编码属性更改为适合您环境的正确值?
-
我认为这与此有关 - 现在看来工作正常,谢谢。