我正在尝试将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
我不知道问号的来源,或文本为什么有空格。有什么想法吗?
答案 0 :(得分:2)
这种输出表示UTF,但是在16位形式中,开头有一个魔术字符。的?和空间是赠品。
一些MS工具本地说,而大多数Unix工具使用UTF-8。
答案 1 :(得分:1)
将sql迁移文件的编码更改为UTF-8解决了' ??'我的错误。
答案 2 :(得分:1)
更改文件的编码对我有用。我使用了文本编辑器(Notepad ++):