Flyway在迁移脚本上抛出错误

时间:2013-10-07 11:36:13

标签: java flyway

我正在尝试将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

我不知道问号的来源,或文本为什么有空格。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这种输出表示UTF,但是在16位形式中,开头有一个魔术字符。的?和空间是赠品。

一些MS工具本地说,而大多数Unix工具使用UTF-8。

答案 1 :(得分:1)

将sql迁移文件的编码更改为UTF-8解决了' ??'我的错误。

答案 2 :(得分:1)

更改文件的编码对我有用。我使用了文本编辑器(Notepad ++):

  1. 在文本编辑器中打开文件。
  2. 在菜单中选择“编码”。
  3. 从选项列表中选择编码类型。
  4. 保存文件。