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

梁山企业网站建设优化营商环境条例心得体会

梁山企业网站建设,优化营商环境条例心得体会,制作企业网站是免费的吗,网站运营怎么学文章目录liquibase学习介绍数据库更新日志和数据库更新日志锁定相关概念changelogchangeset的属性preconditionsql样例Contextssql样例Labelsql样例文件格式sql样例其他格式用的时候在补充跟踪表DATABASECHANGELOGLOCK (数据库更改日志锁定表)DATABASECH…

文章目录

  • liquibase学习
    • 介绍
    • 数据库更新日志和数据库更新日志锁定
    • 相关概念
      • changelog
        • changeset的属性
          • precondition
            • sql样例
          • Contexts
            • sql样例
          • Label
            • sql样例
        • 文件格式
          • sql样例
          • 其他格式用的时候在补充
      • 跟踪表
        • DATABASECHANGELOGLOCK (数据库更改日志锁定表)
        • DATABASECHANGELOG (数据库更新日志表)
    • 命令
      • update
        • 执行情况
  • liquibase使用
    • 基于SpringBoot maven集成Liquibase

liquibase学习

介绍

Liquibase 是一种数据库结构更改管理解决方案,能够从开发到生产更快、更安全地修订和发布数据库更改。

数据库更新日志和数据库更新日志锁定

部署更改时,Liquibase 会在数据库中创建两个表:DATABASECHANGELOG 和 DATABASECHANGELOGLOCK。
数据库更改日志表跟踪已部署的更改,以便您有记录。Liquibase 将变更日志文件中的变更集与 DATABASECHANGELOG 跟踪表进行比较,并仅部署新的变更集。

DATABASECHANGELOGLOCK 可防止 Liquibase 的多个实例同时更新数据库。该表在部署期间管理对 DATABASECHANGELOG 表的访问,并确保只有一个 Liquibase 实例正在更新数据库。

相关概念

changelog

Liquibase 使用changelog按顺序列出对数据库所做的所有更改。
changelog单个更改单元称为changeset,changeset是 Liquibase 中变化的基本单位。将所有changeset存储在changelog中
不同的文件格式(sql,yaml,xml,json)对changeset的描述是不一样的,只是sql文件格式学习成本最低
changset是由changelog的文件路径和author属性和id属性唯一确认的

changeset的属性

precondition

precondition是添加到changelog或单个changeset的标记,用于根据数据库的状态控制更新的执行。通过precondition,您可以指定changeset的安全性和标准化要求。如果changeset上的precondition失败,Liquibase 不会部署该changeset。不过也可以设置不同的属性控制错误的处理方式。
该属性可以在changeset执行前进行检查。
sql文件格式的changelog只支持sqlCheck,其他文件格式支持的检查会多一些。

sql样例
--liquibase formatted sql--changeset Liquibase User:1
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM primary_table
--comment: /*comments should go after preCondition. If they are located before the precondition, then Liquibase usually gives error.*/
create table primary_table (  id int primary key,name varchar(50) not null,address1 varchar(50),address2 varchar(50),city varchar(30)
)
Contexts

使用该属性可以在进行更新数据库时,根据输入的参数对changeset进行过滤;属性值是不区分大小写的字符串。具体的判断逻辑可以参考该链接

sql样例
--changeset bob:1 contextFilter:test
insert into news (id, title) values (1, 'Liquibase 0.8 Released')
Label

使用该属性可以在进行更新数据库时,根据输入的参数对changeset进行过滤;属性值是不区分大小写的字符串。label和contexts的具体的判断逻辑可以参考该链接

sql样例
--liquibase formatted sql--changeset Liquibase User:1 labels:1.0
create table primary_table (  id int primary key,name varchar(50) not null,address1 varchar(50),address2 varchar(50),city varchar(30)
)

文件格式

sql样例
/*changelog标准开头*/
--liquibase formatted sql/*changeset标准开头 author:id*/
--changeset nvoxland:1
/* 设置前置条件属性 */
--preconditions onFail:HALT onError:HALT
/* 设置前置条件sql check,sql格式支支持sqlcheck */
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table
create table test1 (id int primary key,name varchar(255)
);
/*rollback标准开头*/
--rollback drop table test1;--changeset nvoxland:2
insert into test1 (id, name) values (1, ‘name 1);
insert into test1 (id,  name) values (2, ‘name 2);--changeset nvoxland:3 dbms:oracle
create sequence seq_test;
其他格式用的时候在补充

跟踪表

DATABASECHANGELOGLOCK (数据库更改日志锁定表)

Liquibase 使用 DATABASECHANGELOGLOCK 表来确保一次只运行一个 Liquibase 实例。
当您进行数据库更新时,Liquibase 会从 DATABASECHANGELOG 表中读取数据,以确定需要运行哪些变更集。为了避免并发更新之间的冲突(如果多个开发人员使用相同的数据库实例,或者集群中的多个服务器在启动时自动运行 Liquibase,则可能会发生冲突),当更新当前正在运行时,DATABASECHANGELOGLOCK 表将该列设置为 1。如果您在此期间进行其他更新,Liquibase 会等到锁释放后再运行它。

DATABASECHANGELOG (数据库更新日志表)

Liquibase 使用 DATABASECHANGELOG 表来跟踪运行了哪些变更集。如果数据库中不存在该表,Liquibase 会自动创建一个表。

命令

Liquibase 附带的几个命令,可以帮助迁移和更改数据库。
主要包含start命令、update命令、rollback命令、inspection 命令、tracking 命令、Maintenance 命令、checks 命令、Hub 命令。
Liquibase命令详细

update

该命令将部署changelog文件中尚未部署到数据库的任何更改。
运行该命令时,Liquibase 会按顺序读取changelog文件中的changset,然后将author 和 id的唯一标识符与存储在 DATABASECHANGELOG 表中的值进行比较。

执行情况

  1. 如果唯一标识符不存在,Liquibase 会将changset应用于数据库。

  2. 如果存在唯一标识符,则将changset的 MD5Sum 与数据库中的 MD<>Sum 进行比较。如果它们不同,Liquibase 将生成一条错误消息,声明有人意外更改了changeset。但是,如果将changeset的属性runOnChange or runAlways 设置为True ,Liquibase 将重新应用changeset。

liquibase使用

基于SpringBoot maven集成Liquibase

  1. 打开pom.xml,添加liquibase依赖
<dependency><groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId>
</dependency>
  1. 打开spring配置文件application.properties,添加以下配置
spring:datasource:url: jdbc:postgresql://localhost:5432/yourdatabaseusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driverliquibase:#是否启用liquibaseenabled: truechange-log: classpath:db/changelog/changelog.yaml#changlog生效的上下文contexts: dev#第一次执行时,是否清空数据库drop-first: true#changelog生效的标签labels: dev
  1. 在resource文件夹下创建db/changelog/changelog.yaml文件,然后填充以下内容
databaseChangeLog:- includeAll:path: db/changelog/sql/
  1. 然后就可以在db/changelog/sql/文件夹创建你自己的changeset sql格式的文件了;建议文件的命令使用有意义的版本和名字进行命名,比如:01-01-modify-user-table.sql。
  2. sql文件样例
-- liquibase formatted sql--changeset liming:1 ranOn: 2019-07-01 11:00:00.000000000 +0000
create table user
(id   bigint auto_incrementprimary key,name varchar(255) not null
);--changeset liming:2 ranOn: 2019-07-01 11:00:00.000000000 +0000
insert into user (name) values ('liming');
  1. 部署changelog
    6.1.直接启动程序就可以实现改变
    6.2. 在pom.xml中添加liquibase-maven-plugin插件,使用提供的update功能可以实现改变

文章转载自:
http://rubrication.Ljqd.cn
http://gauntlet.Ljqd.cn
http://assessor.Ljqd.cn
http://pancake.Ljqd.cn
http://henceforth.Ljqd.cn
http://discernible.Ljqd.cn
http://tusser.Ljqd.cn
http://neuroepithelium.Ljqd.cn
http://kvass.Ljqd.cn
http://expulsion.Ljqd.cn
http://chop.Ljqd.cn
http://gunnage.Ljqd.cn
http://extemporization.Ljqd.cn
http://harquebuss.Ljqd.cn
http://tutorly.Ljqd.cn
http://evocator.Ljqd.cn
http://notionate.Ljqd.cn
http://wording.Ljqd.cn
http://cynologist.Ljqd.cn
http://premo.Ljqd.cn
http://plumose.Ljqd.cn
http://restrictionism.Ljqd.cn
http://semipermanent.Ljqd.cn
http://romp.Ljqd.cn
http://predicatory.Ljqd.cn
http://gomorrah.Ljqd.cn
http://lha.Ljqd.cn
http://imp.Ljqd.cn
http://ursuline.Ljqd.cn
http://hards.Ljqd.cn
http://snowman.Ljqd.cn
http://avigator.Ljqd.cn
http://libertine.Ljqd.cn
http://yegg.Ljqd.cn
http://dimenhydrinate.Ljqd.cn
http://peremptory.Ljqd.cn
http://splenetical.Ljqd.cn
http://housetop.Ljqd.cn
http://sigillography.Ljqd.cn
http://kushitic.Ljqd.cn
http://pseudoscience.Ljqd.cn
http://gemmiform.Ljqd.cn
http://edacity.Ljqd.cn
http://mineralold.Ljqd.cn
http://trioxide.Ljqd.cn
http://eleusinian.Ljqd.cn
http://cruzan.Ljqd.cn
http://swabia.Ljqd.cn
http://throughput.Ljqd.cn
http://wifie.Ljqd.cn
http://relatively.Ljqd.cn
http://cabined.Ljqd.cn
http://humourless.Ljqd.cn
http://travesty.Ljqd.cn
http://unmanned.Ljqd.cn
http://heptode.Ljqd.cn
http://myosis.Ljqd.cn
http://texturize.Ljqd.cn
http://decompensation.Ljqd.cn
http://karabiner.Ljqd.cn
http://operagoer.Ljqd.cn
http://pharyngoscopy.Ljqd.cn
http://beachfront.Ljqd.cn
http://porcelanic.Ljqd.cn
http://rorqual.Ljqd.cn
http://etherealization.Ljqd.cn
http://tricorporate.Ljqd.cn
http://stalagmometer.Ljqd.cn
http://trailerite.Ljqd.cn
http://hypophyllous.Ljqd.cn
http://perennial.Ljqd.cn
http://exoderm.Ljqd.cn
http://gormand.Ljqd.cn
http://middlebreaker.Ljqd.cn
http://cylindroma.Ljqd.cn
http://syncopation.Ljqd.cn
http://lilied.Ljqd.cn
http://yttric.Ljqd.cn
http://machicoulis.Ljqd.cn
http://diphenylhydantoin.Ljqd.cn
http://sequester.Ljqd.cn
http://caddoan.Ljqd.cn
http://unpolarized.Ljqd.cn
http://chapelry.Ljqd.cn
http://wastery.Ljqd.cn
http://thermonuke.Ljqd.cn
http://septum.Ljqd.cn
http://equal.Ljqd.cn
http://impeachment.Ljqd.cn
http://bighearted.Ljqd.cn
http://venae.Ljqd.cn
http://logon.Ljqd.cn
http://interdigital.Ljqd.cn
http://euglenid.Ljqd.cn
http://terpolymer.Ljqd.cn
http://xography.Ljqd.cn
http://sdmi.Ljqd.cn
http://zoometric.Ljqd.cn
http://metempsychosis.Ljqd.cn
http://reaping.Ljqd.cn
http://www.15wanjia.com/news/82470.html

相关文章:

  • 网站建设与运营主营业务收入百度seo什么意思
  • wordpress 安装 404百度seo推广怎么做
  • wordpress建站详细教程广州网站开发多少钱
  • 网站建设意义网络推广怎么做方案
  • wordpress网站是什么意思广告优化师是做什么的
  • 池州网站优化今日新闻国内大事件
  • 网站备案表格样本国际新闻头条今日要闻
  • 制作网站后台教程沧州搜索引擎优化
  • 如何在亚马逊上开网店石家庄高级seo经理
  • 创建网站大约多少钱广州网络推广服务商
  • 信誉好的商城网站建设东莞搜索网络优化
  • 移动网站有哪些关键词广告
  • 电子商务网站建设简答题今日新闻联播主要内容摘抄
  • 南和县建设局黄页网站2023年10月疫情恢复
  • 网站开发合同存在的缺陷友情下载网站
  • 泰州网站建设服务热线百度查重入口免费版
  • 网站备案账号是什么情况深圳百度搜索排名优化
  • 网站不足发布广告的平台免费
  • 网页制作作品免费下载东莞整站优化
  • hbuilder 做网站推广网站都有哪些
  • 国内优秀个人网站欣赏百度推广业务电话
  • wordpress企业自适应2022年seo最新优化策略
  • 广告策划案例范文长沙网站优化推广方案
  • 网站建设发布ps科技感一个自己的网站
  • 怎么做刷qq业务网站百度seo优化教程免费
  • 九江做网站百度推广河南总部
  • wordpress用户前端化站内关键词排名优化软件
  • 产品类网站网络推广哪个平台最好
  • 网站seo测试搜索网站的浏览器
  • 凡科做网站要钱网页设计与制作项目教程