2

我正在尝试可能在我们的项目中使用的 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

我不知道问号来自哪里,或者为什么文本有空格。有任何想法吗?

4

3 回答 3

2

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

一些 MS 工具本身就是这样说的,而大多数 Unix 工具使用 UTF-8。

于 2014-10-23T17:56:15.253 回答
1

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

于 2016-09-29T20:58:53.083 回答
1

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

  1. 在文本编辑器中打开文件。
  2. 在菜单中选择“编码”。
  3. 从选项列表中选择编码类型。
  4. 保存文件。
于 2019-06-06T19:57:50.840 回答