我正在运行此命令
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
答案 0 :(得分:3)
我找到了解决方案,问题出在行尾。我的文件的行尾不一致。有些行以\r\n
结尾,另一行以\r
或\n
结尾。之所以如此,是因为我从SQL Management Studio开始生成了一个sql脚本。
normalize inconsistent line endings
该解决方案也在SQL Management Studio中。
答案 1 :(得分:1)
就我而言,为了避免此错误,我不得不将sql文件的编码从ANSI更改为UTF-8。
我是通过在记事本++中打开sql文件来完成此操作的。从“编码”菜单中单击“转换为UTF-8”后,我保存了文件并成功重新运行flyway命令。