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

wordpress页面属性模板seo排名推广工具

wordpress页面属性模板,seo排名推广工具,Apache局域网网站制作,建筑网络计划图中tp是什么意思1、是什么? Liquibase官网 Liquibase是一个开源的数据库管理工具,可以帮助开发人员管理和跟踪数据库变更。它可以与各种关系型数据库和NoSQL数据库一起使用,并提供多种数据库任务自动化功能,例如数据库迁移、版本控制和监控。Li…

1、是什么?

Liquibase官网

Liquibase是一个开源的数据库管理工具,可以帮助开发人员管理和跟踪数据库变更。它可以与各种关系型数据库和NoSQL数据库一起使用,并提供多种数据库任务自动化功能,例如数据库迁移、版本控制和监控。Liquibase还提供了一个Web界面,可以方便地管理和跟踪数据库变更。它支持Java、Python、Ruby等多种语言,可以轻松地集成到现有的开发环境中。

2、能干嘛?

Liquibase主要功能包括:

  • 数据库迁移:可以方便地将数据库从一个版本迁移到另一个版本。
  • 版本控制:可以跟踪数据库变更的历史记录,并可以根据需要回滚到以前的版本。
  • 监控:可以监控数据库变更,并在发生变更时收到通知。
  • 自动化:可以自动化数据库任务,例如在应用程序部署之前检查数据库完整性。

Liquibase可以帮助开发人员更加高效地管理数据库,并减少由于数据库变更而导致的错误。

Liquibase的优点:

  • 配置文件支持SQL、XML、JSON 或者 YAML
  • 版本控制按序执行
  • 可以用上下文控制sql在何时何地如何执行
  • 支持schmea的变更
  • 根据配置文件自动生成sql语句用于预览
  • 可重复执行迁移
  • 可插件拓展
  • 可回滚
  • 可兼容14中主流数据库如oracle,mysql,pg等,支持平滑迁移
  • 支持schema方式的多租户(multi-tenant)

3、怎么玩?

这里主要使用SpringBoot整合Liquibase实现对数据库进行版本管理

(1) 引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.ly</groupId><artifactId>springboot-liquibase</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</version></parent><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency><groupId>org.liquibase</groupId><artifactId>liquibase-core</artifactId><version>4.23.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.18</version></dependency></dependencies>
</project>
(2) 配置数据源
package com.ly.config;import com.alibaba.druid.pool.DruidDataSource;
import lombok.Data;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;import static com.ly.config.DataSourcesConfig.SPRING_DATASOURCE;/*** @author ly (个人博客:https://www.cnblogs.com/ybbit)* @date 2023-07-22  16:28* @tags 喜欢就去努力的争取*/
@ConfigurationProperties(prefix = SPRING_DATASOURCE)
@SpringBootConfiguration
@Data
public class DataSourcesConfig {public static final String SPRING_DATASOURCE = "spring.datasource";private String driverClassName;private String url;private String username;private String password;/*** 数据源配置** @return*/@Beanpublic DataSource dataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClassName);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(username);return dataSource;}
}
(3) 配置Liquibase
package com.ly.config;import liquibase.integration.spring.SpringLiquibase;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;/*** @author ly (个人博客:https://www.cnblogs.com/ybbit)* @date 2023-07-22  14:53* @tags 喜欢就去努力的争取*/
@ConditionalOnProperty(value = "spring.profiles.active", havingValue = "dev")
@SpringBootConfiguration
public class LiquibaseConfig {public static final String CHANGE_LOG_PATH = "classpath:/liquibase/db.changelog-master.xml";@Beanpublic SpringLiquibase liquibase(DataSource dataSource) {SpringLiquibase liquibase = new SpringLiquibase();liquibase.setChangeLog(CHANGE_LOG_PATH);liquibase.setDataSource(dataSource);liquibase.setShouldRun(true);return liquibase;}}
(4) 创建db.changelog-master.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLogxmlns="http://www.liquibase.org/xml/ns/dbchangelog"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangeloghttp://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd"><!--1:includeAll 标签可以把一个文件夹下的所有 changelog 都加载进来。如果单个加载可以用 include。2:includeAll 标签里有两个属性:path 和 relativeToChangelogFile。2.1:path (在 include 标签里是 file):指定要加载的文件或文件夹位置2.2:relativeToChangelogFile :文件位置的路径是否相对于 root changelog 是相对路径,默认 false,即相对于 classpath 是相对路径。--><!--    <includeAll path="change/" relativeToChangelogFile="true"/>--><!--加入一张test_create_table表--><include file="classpath:liquibase/change/changelog_v1.0.xml"></include><!--给test_create_table表加一个email字段--><include file="classpath:liquibase/change/changelog_v2.0.xml"></include><!--修改test_create_table表加email字段--><include file="classpath:liquibase/change/changelog_v3.0.xml"></include><!--向test_create_table表加一条数据--><include file="classpath:liquibase/change/changelog_v4.0.xml"></include></databaseChangeLog>
(5) 创建每一项的变更文件(推荐把各个模块的变更都分门别类的整理好)

changelog_v1.0.xml

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"><!--changeSet:每一个changeSet对应一个数据库相关的操作author:修改人id:唯一--><!--加入一张表【test_create_table】--><changeSet author="ly" id="2023072201-1"><createTable remarks="用户表" tableName="test_create_table"><column autoIncrement="true" name="id" type="INT" remarks="主键"><constraints nullable="false" primaryKey="true" unique="true"/></column><column name="username" remarks="用户名" type="VARCHAR(32)"><constraints unique="true" nullable="false"/></column><column name="password" remarks="密码" type="VARCHAR(100)"><constraints unique="false" nullable="false"/></column></createTable></changeSet>
</databaseChangeLog>

changelog_v2.0.xml

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"><changeSet author="ly" id="2023072202-1"><!--加入一个email字段--><addColumn tableName="test_create_table"><column name="email" type="VARCHAR(32)" remarks="邮箱"><constraints nullable="true"/></column></addColumn></changeSet>
</databaseChangeLog>

changelog_v3.0.xml

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"><changeSet author="ly" id="2023072203-1"><!--重命名email列名称--><renameColumn tableName="test_create_table" oldColumnName="email" newColumnName="newEmail" columnDataType="VARCHAR(50)"/></changeSet>
</databaseChangeLog>

changelog_v4.0.xml

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"><changeSet author="ly" id="2023072204-1"><!--插入一条数据--><insert tableName="test_create_table"><column name="id" value="1"></column><column name="username" value="zs"></column><column name="password" value="123"></column><column name="newEmail" value="zs@163.com"></column></insert></changeSet>
</databaseChangeLog>
(6) SpringBoot配置文件
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/qbb01username: rootpassword: rootprofiles:active: dev
(7) Main
package com.ly;import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;/*** @author ly (个人博客:https://www.cnblogs.com/ybbit)* @date 2023-07-22  14:52* @tags 喜欢就去努力的争取*/
@EnableConfigurationProperties
@SpringBootApplication
public class LiquibaseApplication {public static void main(String[] args) {new SpringApplicationBuilder(LiquibaseApplication.class).run(args);}
}
(7) 启动日志

image

(8) 数据库

image

image

4、ChangeSet标签集与作用

(1) add
标签说明
addAutoIncrement将已存在的列改为自增列
addColumn增加列
addDefaultValue增加列的默认值
addForeignKeyConstraint增加外键
addLookupTable创建外键的关联表
addNotNullConstraint增加非空值约束
addPrimaryKey增加主键
addUniqueConstraint增加唯一值约束
(2) create
标签说明
createIndex创建索引
createProcedure创建存储过程
createSequence创建序列
createTable创建表
createView创建视图
(3) drop
标签说明
dropAllForeignKeyConstraints删除全部外键约束
dropColumn删除列
dropDefaultValue删除默认值
dropForeignKeyConstraint删除某一外键约束
dropNotNullConstraint删除空值约束
dropPrimaryKey删除主键
dropProcedure删除存储过程
dropSequence删除序列
dropTable删除表
dropUniqueConstraint删除唯一约束
dropView删除视图
(4) rename
标签说明
renameColumn重命名列
renameSequence重命名序列
renameTable重命名表
renameView重命名视图
5、sql
标签说明
sqlsql语句
sqlFilesql文件
6、其他
标签说明
insert插入数据
update更新数据
delete删除数
empty空操作
executeCommand执行命名
alterSequence修改序列
customChange自定义操作,需自己实现
loadData导入csv数据至已存在的表中
loadUpdateData导入csv数据至表中,表不存在则新建
mergeColumns合并列
modifyDataType修改数据类型
output输出日志
setColumnRemarks增加列说明
setTableRemarks增加表说明
stop停止liquibase
tagDatabase打标签用于将来回滚

5、集成Maven插件

(1) 在pom.xml中加入下面的插件配置
<build><plugins><plugin><groupId>org.liquibase</groupId><artifactId>liquibase-maven-plugin</artifactId><configuration><!--properties文件路径,该文件记录了数据库连接信息等--><propertyFile>src/main/resources/liquibase.properties</propertyFile><propertyFileWillOverride>true</propertyFileWillOverride><!--生成文件的路径--><outputChangeLogFile>src/main/resources/liquibase/change/changelog_base.xml</outputChangeLogFile></configuration></plugin></plugins></build>
(2) 在resources目录下加入liquibase.properties配置文件
#要连接库配置信息
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/qbb01
username=root
password=root
#liquibase
changeLogFile=src/main/resources/liquibase/db.changelog-master.xml
(3) 根据当前配置的数据源生成changelog

image

(4) 结果

image

代码仓库:springboot-liquibase

文章转载自:
http://felsite.jpkk.cn
http://imperious.jpkk.cn
http://unentangled.jpkk.cn
http://arca.jpkk.cn
http://carrom.jpkk.cn
http://insufficient.jpkk.cn
http://forgetter.jpkk.cn
http://colorimetric.jpkk.cn
http://amity.jpkk.cn
http://crybaby.jpkk.cn
http://hypermegasoma.jpkk.cn
http://paludose.jpkk.cn
http://aptly.jpkk.cn
http://monostichous.jpkk.cn
http://brewis.jpkk.cn
http://rivadavia.jpkk.cn
http://drawspring.jpkk.cn
http://furtively.jpkk.cn
http://sceptre.jpkk.cn
http://lara.jpkk.cn
http://mobbism.jpkk.cn
http://ameer.jpkk.cn
http://liquesce.jpkk.cn
http://spaceport.jpkk.cn
http://ibuprofen.jpkk.cn
http://leucoblast.jpkk.cn
http://spendable.jpkk.cn
http://templar.jpkk.cn
http://petty.jpkk.cn
http://unadulterated.jpkk.cn
http://oboe.jpkk.cn
http://limnaeid.jpkk.cn
http://panini.jpkk.cn
http://spicily.jpkk.cn
http://comic.jpkk.cn
http://heshvan.jpkk.cn
http://overplease.jpkk.cn
http://revivalist.jpkk.cn
http://balame.jpkk.cn
http://intricacy.jpkk.cn
http://shable.jpkk.cn
http://douche.jpkk.cn
http://cervicothoracic.jpkk.cn
http://acculturationist.jpkk.cn
http://began.jpkk.cn
http://fragmentized.jpkk.cn
http://masterless.jpkk.cn
http://alsike.jpkk.cn
http://cabezon.jpkk.cn
http://permeance.jpkk.cn
http://pompously.jpkk.cn
http://complexioned.jpkk.cn
http://gist.jpkk.cn
http://tried.jpkk.cn
http://preconceive.jpkk.cn
http://cavern.jpkk.cn
http://zowie.jpkk.cn
http://lettuce.jpkk.cn
http://blasphemer.jpkk.cn
http://fluxional.jpkk.cn
http://obstetrics.jpkk.cn
http://englishment.jpkk.cn
http://sororal.jpkk.cn
http://algometrical.jpkk.cn
http://mastic.jpkk.cn
http://piercing.jpkk.cn
http://postflight.jpkk.cn
http://stull.jpkk.cn
http://anemic.jpkk.cn
http://watchmaker.jpkk.cn
http://evernormal.jpkk.cn
http://cantharis.jpkk.cn
http://youthify.jpkk.cn
http://featherhead.jpkk.cn
http://pompano.jpkk.cn
http://bondon.jpkk.cn
http://curragh.jpkk.cn
http://endurably.jpkk.cn
http://cloddish.jpkk.cn
http://ideological.jpkk.cn
http://tundzha.jpkk.cn
http://radiotherapeutics.jpkk.cn
http://hymenopteron.jpkk.cn
http://overboot.jpkk.cn
http://mccarthyite.jpkk.cn
http://gastrulate.jpkk.cn
http://cousinry.jpkk.cn
http://buncombe.jpkk.cn
http://telocentric.jpkk.cn
http://apf.jpkk.cn
http://royalist.jpkk.cn
http://ribose.jpkk.cn
http://incompetently.jpkk.cn
http://falcial.jpkk.cn
http://effacement.jpkk.cn
http://commune.jpkk.cn
http://morellian.jpkk.cn
http://empaquetage.jpkk.cn
http://agrologic.jpkk.cn
http://monopteron.jpkk.cn
http://www.dt0577.cn/news/126297.html

相关文章:

  • 可以做h5网站如何提高网站在搜索引擎中的排名
  • 武汉市建设工程在哪个网站设计公司排名前十强
  • wordpress仿站方法百度在线下载
  • 怎么做盗版网站吗百度应用商店app下载安装
  • wordpress批量发布器网站优化排名软件推广
  • wordpress安装到跟目录下福州百度关键词优化
  • 做充币提现的网站百度浏览器主页网址
  • java 做网站的书怎么快速排名
  • 网址导航系统北京百度推广排名优化
  • 做婚庆网站的想法百度推广代理公司哪家好
  • 专做皮具的网站常用的网络营销策略有哪些
  • 桂林手机网站制作百度站长链接提交
  • 网站定制的销售情况中国免费网站服务器主机域名
  • 专业网站建设商城价格网站快速优化排名方法
  • 凡科二级网站怎么做燃灯seo
  • 龙岗南联网站建设公司网站关键词如何优化
  • 有关大数据的网站及网址网络seo外包
  • 视频聚合网站怎么做不侵权品牌推广策划
  • 查网站是什么公司做的发布悬赏任务的推广平台
  • 邦拓网站建设学生网页设计模板
  • 重庆网站优化seo公司营销 推广
  • 做临时网站搜索排名竞价
  • 网站在线qq客服系统女教师遭网课入侵视频大全
  • 网站制作多久中国营销网
  • 安徽六安疫情源头seo优化多少钱
  • 网站文件夹命名线上广告投放渠道
  • 公司专业做网站北京百度推广优化排名
  • 做废品推广哪个网站好长沙百度搜索网站排名
  • 沈阳医疗网站制作无锡网站seo
  • 网站建设是设百度扫一扫识别图片在线