Sql server Flyway错误-当我运行migrate命令时。我得到;无法计算校验和“;

Sql server Flyway错误-当我运行migrate命令时。我得到;无法计算校验和“;,sql-server,docker,flyway,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

我正在运行这个命令

 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。我找到了解决方案,问题出在行尾。我的文件有不一致的行尾。有些行以
\r\n
结尾,另一行以
\r
\n
结尾。这是因为我从SQLManagementStudio生成了一个sql脚本。 解决方案也在SQL Management Studio中。

在我的例子中,我不得不将sql文件编码从ANSI更改为UTF-8以避免此错误

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
我是通过在记事本++中打开sql文件来实现的。从“编码”菜单中单击“转换为UTF-8”后,我保存了文件并成功地重新运行flyway命令