内容简介:目前项目是spring boot+mysql+maven,因为需要数据库版本管理,因而集成flyway导出数据库清空数据库
背景
目前项目是spring boot+mysql+maven,因为需要数据库版本管理,因而集成flyway
目标
- 集成flyway
- 对于已存在的数据库结构不影响
步骤
1.在 pom.xml
中加入依赖
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>5.2.4</version> </dependency>
2.在项目中,创建放置 sql 的文件夹
cd src/main/resources mkdir db/migration
3.导出当前数据库的DDL和数据文件清空数据库
导出数据库
mysqldump -uroot -p Mydb >Mydb.sql
清空数据库
drop database Mydb; create schema Mydb default character set utf8 collate utf8_general_ci;
4.将导出文件放置到 db/migration
中
mv Mydb.sql db/migration/V1__init.sql
5.编译&&运行项目
#编译打包 mvn package #运行项目 java -jar target/myproject-0.0.1-SNAPSHOT.jar
6.运行结果
数据库和未集成前一致,且多一个 schema_version
表,该表是flyway进行版本管理的主表
注意
这个方法简单粗暴,用于比数据量不大的情况
一些可以配置的flyway参数
方法一:在application.properties 或者 application.yml 中配置
# FLYWAY (FlywayProperties) spring.flyway.baseline-description=<< Flyway Baseline >> # Description to tag an existing schema with when applying a baseline. spring.flyway.baseline-on-migrate=false # Whether to automatically call baseline when migrating a non-empty schema. spring.flyway.baseline-version=1 # Version to tag an existing schema with when executing baseline. spring.flyway.check-location=true # Whether to check that migration scripts location exists. spring.flyway.clean-disabled=false # Whether to disable cleaning of the database. spring.flyway.clean-on-validation-error=false # Whether to automatically call clean when a validation error occurs. spring.flyway.connect-retries=0 # Maximum number of retries when attempting to connect to the database. spring.flyway.enabled=true # Whether to enable flyway. spring.flyway.encoding=UTF-8 # Encoding of SQL migrations. spring.flyway.group=false # Whether to group all pending migrations together in the same transaction when applying them. spring.flyway.ignore-future-migrations=true # Whether to ignore future migrations when reading the schema history table. spring.flyway.ignore-ignored-migrations=false # Whether to ignore ignored migrations when reading the schema history table. spring.flyway.ignore-missing-migrations=false # Whether to ignore missing migrations when reading the schema history table. spring.flyway.ignore-pending-migrations=false # Whether to ignore pending migrations when reading the schema history table. spring.flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it. spring.flyway.installed-by= # Username recorded in the schema history table as having applied the migration. spring.flyway.locations=classpath:db/migration # Locations of migrations scripts. Can contain the special "{vendor}" placeholder to use vendor-specific locations. spring.flyway.mixed=false # Whether to allow mixing transactional and non-transactional statements within the same migration. spring.flyway.out-of-order=false # Whether to allow migrations to be run out of order. spring.flyway.password= # Login password of the database to migrate. spring.flyway.placeholder-prefix=${ # Prefix of placeholders in migration scripts. spring.flyway.placeholder-replacement=true # Perform placeholder replacement in migration scripts. spring.flyway.placeholder-suffix=} # Suffix of placeholders in migration scripts. spring.flyway.placeholders= # Placeholders and their replacements to apply to sql migration scripts. spring.flyway.repeatable-sql-migration-prefix=R # File name prefix for repeatable SQL migrations. spring.flyway.schemas= # Scheme names managed by Flyway (case-sensitive). spring.flyway.skip-default-callbacks=false # Whether to skip default callbacks. If true, only custom callbacks are used. spring.flyway.skip-default-resolvers=false # Whether to skip default resolvers. If true, only custom resolvers are used. spring.flyway.sql-migration-prefix=V # File name prefix for SQL migrations. spring.flyway.sql-migration-separator=__ # File name separator for SQL migrations. spring.flyway.sql-migration-suffixes=.sql # File name suffix for SQL migrations. spring.flyway.table=flyway_schema_history # Name of the schema schema history table that will be used by Flyway. spring.flyway.target= # Target version up to which migrations should be considered. spring.flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used. spring.flyway.user= # Login user of the database to migrate. spring.flyway.validate-on-migrate=true # Whether to automatically call validate when performing a migration.
方法二:用环境变量配置
略
参考资料
以上所述就是小编给大家介绍的《已有项目改造——Spring boot集成flyway》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 如何在Github中删除已有仓库或文件
- Fedora logo 改版最新进展:已有三个候选方案
- Flutter与已有iOS工程混合开发与脚本配置
- Rainbond 5.0 发布,支持管理对接已有 Kubernetes 集群
- Rainbond 5.0 正式发布,支持对接管理已有 Kubernetes 集群
- Debian 项目领导人职位已有三位侯选者
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX 时间戳转换
UNIX 时间戳转换
RGB CMYK 转换工具
RGB CMYK 互转工具