Fylway错误-运行迁移命令时。我得到“无法计算校验和”

时间:2019-09-06 15:15:39

标签: sql-server docker flyway

我正在运行此命令

 docker run --network=foo --rm -v C:/Users/xxxx/Documents/flyway/sql:/flyway/sql flyway/flyway migrate -user=sa -password=MyPassword001 -url="jdbc:sqlserver://sqlserver-test:1433;databaseName=master"

我有这个错误。

Flyway Community Edition 6.0.1 by Boxfuse
Database: jdbc:sqlserver://sqlserver-test:1433;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;trustStoreType=JKS;trustServerCertificate=false;TransparentNetworkIPResolution=true;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=15;lockTimeout=-1;lastUpdateCount=true;encrypt=false;disableStatementPooling=true;databaseName=master;columnEncryptionSetting=Disabled;applicationName=Microsoft JDBC Driver for SQL Server;applicationIntent=readwrite; (Microsoft SQL Server 14.0)
ERROR: Unable to calculate checksum for V1.1__My_description.sql: Input length = 1

文件的内容非常简单。我创建一个表。

我正在使用Boxfuse的Flyway Community Edition 6.0.1

2 个答案:

答案 0 :(得分:3)

我找到了解决方案,问题出在行尾。我的文件的行尾不一致。有些行以\r\n结尾,另一行以\r\n结尾。之所以如此,是因为我从SQL Management Studio开始生成了一个sql脚本。 normalize inconsistent line endings 该解决方案也在SQL Management Studio中。 enter image description here

答案 1 :(得分:1)

就我而言,为了避免此错误,我不得不将sql文件的编码从ANSI更改为UTF-8。

我是通过在记事本++中打开sql文件来完成此操作的。从“编码”菜单中单击“转换为UTF-8”后,我保存了文件并成功重新运行flyway命令。