当前位置: 首页 > news >正文

免费个人网站建站申请苏州整站优化

免费个人网站建站申请,苏州整站优化,贵州省住房与城乡建设部网站,深圳html5网站推广价格一、为什么使用Flyway 最简单的一个项目是一个软件连接到一个数据库#xff0c;但是大多数项目中我们不仅要处理我们开发环境的副本#xff0c;还需要处理其他很多副本。例如#xff1a;开发环境、测试环境、生产环境。想到数据库管理#xff0c;我们立刻就能想到一系列问…一、为什么使用Flyway 最简单的一个项目是一个软件连接到一个数据库但是大多数项目中我们不仅要处理我们开发环境的副本还需要处理其他很多副本。例如开发环境、测试环境、生产环境。想到数据库管理我们立刻就能想到一系列问题 如何快速收集执行脚本的清单执行的脚本总要人工执行是否可以通过机器执行执行的脚本是否已经在数据库执行过执行的脚本是否全部在数据库中执行过执行的脚本如何回退如何初始化一个空数据库实例 Flyway是一款数据库版本控制管理工具它可以简单的、可靠的升级你的数据库。它能帮助解决上面的问题。Flyway核心是记录所有版本演化和状态的MetaData首次启动创建默认名为SCHEMA_VERSION的元素表。表中保存了版本描述要执行的sql脚本等信息。 Flyway已经支持数据库包括:Oracle, SQL Server, SQL Azure, DB2, DB2 z/OS, MySQL (including Amazon RDS), MariaDB, Google Cloud SQL, PostgreSQL (including Amazon RDS and Heroku), Redshift, Vertica, H2, Hsql, Derby, SQLite, SAP HANA, solidDB, Sybase ASE and Phoeni 官网链接https://flywaydb.org/ 二、SpringBoot集成Flyway 2.1 简单示例 参考版本信息 示例信息版本springboot2.7.5flyway7.15.0mysql8.0.28 2.1.1.创建SpringBoot应用并添加flyway-core依赖本例中将实现初始化脚本到mysql数据库因此同时引入了驱动依赖 mysql-connector-java dependencygroupIdorg.flywaydb/groupIdartifactIdflyway-core/artifactIdversion7.15.0/version /dependency参考pom.xml依赖如下 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.28/version/dependencydependencygroupIdorg.flywaydb/groupIdartifactIdflyway-core/artifactIdversion7.15.0/version/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.8.2/versionscopetest/scope/dependency/dependencies2.1.2.在application.properties中设置flyway信息 server.port7002##是否启动,默认开启 spring.flyway.enabled true ## 当迁移发现数据库非空且存在没有元数据的表时自动执行基准迁移新建schema_version表 spring.flyway.baseline-on-migratetrue # 与 baseline-on-migrate: true 搭配使用 spring.baseline-version: 0 ##脚本存放路径 spring.flyway.locations classpath:db/migration ##当flyway第一次运行时会在我们对应的数据库中新建一个记录脚本运行情况的 spring.flyway.tablesat_version ## 编码格式默认UTF-8 spring.flyway.encodingUTF-82.1.3.脚本整理 将脚本整理到resource/db.migration路径下例如 参考SQL脚本信息如下 create table if not exists test_plan_project (test_plan_id varchar(50) null,project_id varchar(50) null,constraint test_plan_project_pkunique (test_plan_id, project_id) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;insert into test_plan_project(test_plan_id, project_id) select id test_plan_id, project_id project_id from test_plan;版本化迁移 执行一遍版本号唯一有重复会报错格式V版本号 双下划线描述结束符重复的迁移 不需要版本号脚本发生变化启动就会执行格式R双下划线描述结束符撤消迁移 格式U版本号 双下划线描述结束符 2.1.4.运行启动主类运行日志如下从日志中可以看到如下信息 启动后正确链接到数据库验证迁移脚本成功使用命令行的方式创建了一张名称为sat_version 的记录表这里要注意所有脚本一旦执行了就会在sat_version中创建记录如果出错引发问题可以删除表中记录反正启动的时候还会再执行当然生产环境不建议此方法但生产环境上部署的包都是验证过无问题的包也不会出现此问题执行了resource/db.migration 目录下的脚本并执行成功 2.2 常见问题 2.2.1.Caused by: org.flywaydb.core.api.FlywayException: Found non-empty schema(s) Caused by: org.flywaydb.core.api.FlywayException: Found non-empty schema(s) runoob but no schema history table. Use baseline() or set baselineOnMigrate to true to initialize the schema history table.at org.flywaydb.core.Flyway$1.execute(Flyway.java:200) ~[flyway-core-7.15.0.jar:na]at org.flywaydb.core.Flyway$1.execute(Flyway.java:170) ~[flyway-core-7.15.0.jar:na]at org.flywaydb.core.Flyway.execute(Flyway.java:586) ~[flyway-core-7.15.0.jar:na]问题原因第一执行的时候没有找到schema history table 这张表其实就是application.properties文件中spring.flyway.table属性配置的表因此要么使用命令创建一个或者在application.properties文件中设置 spring.flyway.baseline-on-migratetrue 2.2.2.Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 5.7 Caused by: org.flywaydb.core.api.FlywayException: Unsupported Database: MySQL 5.7at org.flywaydb.core.internal.database.DatabaseTypeRegister.getDatabaseTypeForConnection(DatabaseTypeRegister.java:106) ~[flyway-core-8.4.2.jar:na]at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.init(JdbcConnectionFactory.java:75) ~[flyway-core-8.4.2.jar:na]at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:143) ~[flyway-core-8.4.2.jar:na]at org.flywaydb.core.Flyway.migrate(Flyway.java:124) ~[flyway-core-8.4.2.jar:na]问题原因flyway-core对数据库版本有要求例如flyway-core的当前最高版本V8.4.3不能使用 MySQL 5.7 当flyway-core 降低到V7.15.0后 问题解决所以匹配flyway-core和数据库版本后问题即可解决 三、总结 使用Flyway之前部署脚本方式一般为开发人员按照顺序汇总数据库的升级脚 然后DBA或者售后在生产库中按照顺序执行升级脚本。使用Flyway之后部署脚本方式就变更为开发人员将脚本构建到程序包中 部署程序包后启动时Flyway自动执行脚本升级。
http://www.w-s-a.com/news/597183/

相关文章:

  • 四川建设厅网站施工员证查询网站建设行业政策
  • 网站全站出售dw怎么设计网页
  • 合肥网站建设方案服务网站建设推荐郑国华
  • 襄阳网站建设需要多少钱台州网站设计公司网站
  • 东莞专业拍摄做网站照片如何在百度上发布自己的广告
  • 网站建设费 科目做网站建设最好学什么
  • php商城网站建设多少钱深圳市建设
  • 有什么做糕点的视频网站黄岛做网站
  • 做视频课程网站建设一个普通网站需要多少钱
  • 专做化妆品的网站合肥做网站建设公司
  • 唐山企业网站网站建设费计入那个科目
  • 企业网站制作运营彩虹云主机官网
  • 如何建设废品网站如何在阿里云云服务器上搭建网站
  • 如何建立网站后台程序wordpress 后台管理
  • 山东外贸网站建设怎么样wordpress首页左图右文
  • 志丹网站建设wordpress 形式修改
  • 南通seo网站推广费用网站建设就业前景
  • 自适应网站做mip改造浏览器广告投放
  • 网站meta网页描述网站的推广费用
  • 偃师市住房和城乡建设局网站网站个人主页怎么做
  • 做网站要实名认证吗wordpress去掉仪表盘
  • 在哪做网站好Python建网站的步骤
  • 卢松松的网站办公室设计布局
  • 住房城乡建设干部学院网站织梦网站0day漏洞
  • 企业网站seo优帮云手机桌面布局设计软件
  • 无证做音频网站违法吗智能建站加盟电话
  • 鹿泉专业网站建设做网站为什么要建站点
  • 加强网站建设和维护工作新闻大全
  • 红鱼洞水库建设管理局网站左右左布局网站建设
  • 手机网站建设地址做网站公