我正在尝试将Flyway潜在地用于我们的项目,因此我有一个非常简单的迁移脚本。我似乎已经一些设置不当但是 - 迁徙路线连接到我的数据库(SQL Server 2008 R2中)成功创建元数据表,但是当我运行该脚本,我得到Flyway在迁移脚本上抛出错误
[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
望着调试日志,迁徙路线输出:
[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文件... – cheffe
这可能是一个编码问题? Flyway期待UTF-8。你使用了哪一个? –
这是UTF-8的结果 - 我使用的是由SQL Server Management Studio 2008生成的文件。我个人的脚本现在运行正常,但我的初始数据库迁移全部失败。现在我只需要手动处理最初的迁移,让Flyway处理补丁脚本。 –