开发了个系统,用Flyway管理数据库脚本。
导入一个老版本的数据库,结果启动时报了个错:
Flyway Validate failed:migration checksum mismatch for migration 1.1
->Applied to database:-115594156
->Resolved locally:1541394156
看提示信息,错误应该是后来修改了一个已升过级的老脚本的内容,导致Flyway对已升级脚本内容检验失败。
我尝试着去修改schema_version表中的checksum字段为正确的值,很奇怪,竟然没有效果,还报同样的错误。我怎么也没有想出来这是什么原因,真的很奇怪,不知那两个数值从什么地方出来??!!
网上查资料,有两种解决办法:
一、是我不可能采用的,就是将schema_version表中出错脚本及以后的所有记录都删掉,全部重新执行。这会造成已有的数据丢失、混乱。
二、是使用Flyway的修改命令修复。这个比较靠谱、可行。
过程如下:
1.下载Flyway的命令行工具。
2.修改配置文件conf/flyway.conf。主要是数据库的连接、驱动、用户名、密码等。
3.将脚本拷到sql目录中。
4.在DOS窗口中执行flyway repair
然后就可以了。这个命令修正了已升级脚本的检验信息。
分享到:
相关推荐
flyway-rails 用于 Rails 数据库迁移的薄包装器 ...Flyway::Rails::MIGRATION_DIRECTORY = 'path/to/your/migrations' 然后,您可以通过运行以下命令列出新的 rake 任务: $ rake -T | grep flyway
java -Ddb.connection.url =“ jdbc:mariadb:// localhost:3306 /” -Ddb.connection.userName =“ root” -Ddb.connection.password =“ yourPassword” -jar ./flyway-database-migration- 1.0.jar --...
为什么要使用Flyway: * 手动执行sql文件的部署流程增加了工作量和出错的可能性 * 使用Flyway可以自动应用新添加的sql文件,将数据库更新到最新版本 * 项目现场维护人员只需要操作启动程序即可,不再有手动执行sql...
4. **Grails命令**:提供了`flyway:migrate`、`flyway:clean`等Grails命令,方便在Grails环境中执行数据库迁移操作。 5. **多环境支持**:根据Grails的环境配置(如开发、测试、生产),插件可以应用不同的迁移策略...
flyway-maven-plugin flyway maven plugin 是...#flyway database migration #验证失败时自动清理 flyway.default.valid.clean=true #自动升级,如果false会先检测数据库状态 flyway.default.migration.auto=true #执行
flyway: url: ${spring.datasource.url} username: ${spring.datasource.username} password: ${spring.datasource.password} ``` 三、创建数据库版本控制脚本 在Flyway中,我们可以创建多个版本控制脚本,以便...
flyway-docker:官方Flyway Docker映像
Flyway数据库迁移实验室概述不同的迁移要求最简单的迁移可以与应用程序(小型应用程序)迁移时直接耦合迁移可能与应用程序发布/部署分离-在发布之前阻止迁移-迁移不能急于在部署中完成,但应作为平台任务运行-迁移...
这是什么? ...migration : column-injection : snowflake-id-column : add-if-missing : true column-index : 0 column-name : id column-type : long inject-class : com.fixiu.flyway.in
这里,`locations`属性指定了存放SQL脚本的目录,通常在`src/main/resources/db/migration`下,文件命名遵循Flyway的约定,如`V1__Initial_schema.sql`,其中`V1`表示版本号,`__`后是描述。 集成完成后,启动...
用法跑步: docker run --rm -v /path/to/your/migrations:/sql -e FLYWAY_CMD=migrate -e DB_USER=postgres -e DB_PASSWORD=postgres -e DB_URL=jdbc:postgresql://db_host/db_name iterators/flyway-docker -e DB_...
spring.flyway.locations=classpath:/db/migration ``` 一旦配置完成,SpringBoot启动时,Flyway会自动检测并执行未运行的SQL脚本,从而更新数据库。在这个例子中,`by_testLog`可能是一个日志相关的数据库表或者...
请检出中flyway-sbt以前版本的flyway-sbt版本。 编辑build.sbt以启用插件并配置数据库访问权限: enablePlugins(FlywayPlugin) version := "0.0.1" name := "flyway-sbt-test1" libraryDependencies += "org....
【Flyway:数据库版本管理利器】 Flyway是一款强大的开源数据库版本管理工具,它使得数据库的迁移变得简单且有序。在“flyway简单测试工程”中,我们可以通过实践来理解其核心概念和工作流程,这对于数据库的开发...
创建Java类并实现`org.flywaydb.core.api.migration.jdbc.JdbcMigration`接口,Flyway会在适当的时候调用这些类。 - **Repeatable Migrations**:对于不改变数据库结构,但需要定期执行的操作,可以使用重复迁移...
**lein-flyway:Leiningen Flyway 插件** 在软件开发中,数据库迁移是管理数据库结构变更的重要工具。Flyway 是一个流行的开源数据库迁移框架,支持多种编程语言和数据库系统。而在Clojure社区,Leiningen是常用的...
8. **错误处理和回滚**:如果迁移过程中发生错误,Flyway会记录失败并停止后续迁移。在配置允许的情况下,还可以执行回滚操作,恢复到上一个成功的版本。 9. **多环境支持**:同一个项目可能在开发、测试和生产环境...
Project有两个迁移,其中包含: src/main/resources/db.migration所有迁移都具有项目。 V00001__Create_country_table.sql CREATE TABLE country (id INT, name VARCHAR(30)); V00002__Add_test_data_to_country....
redis-migration redis version of flyway 缘起 在使用 flyway 管理数据库的过程中感受到实在的便利。故开发一个 redis 版本用于 redis 数据的维护。 说明 启动脚本修改自 flyway 启动脚本 Examples redis-migration...
2. **指定迁移脚本位置**:Flyway默认查找`src/main/resources/db/migration`目录下的脚本,但可以自定义这个路径。 3. **其他配置**:例如,是否自动迁移、是否忽略未知迁移、错误处理策略等。 ### 使用...