新手建站教程报价单seo站长常用工具
2026/2/9 11:38:27 网站建设 项目流程
新手建站教程报价单,seo站长常用工具,广州建筑公司排名,江苏企业建站关于数据库迁移什么是数据库迁移数据库迁移#xff08;Database Migration#xff09;是指对数据库结构进行版本控制的过程#xff0c;它允许开发团队跟踪数据库模式的变更#xff0c;并确保在不同环境#xff08;开发、测试、生产#xff09;中数据库结构的一致性。为什…关于数据库迁移什么是数据库迁移数据库迁移Database Migration是指对数据库结构进行版本控制的过程它允许开发团队跟踪数据库模式的变更并确保在不同环境开发、测试、生产中数据库结构的一致性。为什么需要数据库迁移在传统的软件开发中数据库变更通常通过手动执行SQL脚本完成这种方式存在诸多问题版本不一致不同环境的数据库结构可能不一致协作困难多人开发时容易产生冲突回滚复杂出现问题时难以快速回滚到之前的版本缺乏历史记录无法追踪数据库结构的变更历史LiquibaseLiquibase 是一个开源的数据库迁移工具它通过 changelog 文件来管理数据库的变更支持多种格式XML、JSON、YAML、SQL的变更定义能够与多种数据库系统协同工作。主要特性支持多种数据库MySQL、PostgreSQL、Oracle等多种变更定义格式回滚支持与Spring Boot无缝集成丰富的变更类型支持Spring Boot 集成 Liquibase添加依赖首先在pom.xml中添加 Liquibase 依赖!-- Liquibase Database Migration -- dependency groupIdorg.liquibase/groupId artifactIdliquibase-core/artifactId /dependencyLiquibase比起Flyway对Springboot的支持更好。使用Springboot3也可以运行Flyway则在Springboot3里面无法使用。YML配置# Liquibase Configuration liquibase: enabled: true change-log: classpath:db/changelog/db.changelog-master.xml drop-first: false default-schema: mqtt定义Liquibase的XML创建主变更日志文件在src/main/resources/db/changelog目录下创建主变更日志文件db.changelog-master.yaml?xml version1.0 encodingUTF-8? databaseChangeLog xmlnshttp://www.liquibase.org/xml/ns/dbchangelog xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd !-- Include all changelog files -- include filedb/changelog/changes/v1.0-initial-schema.xml/ include filedb/changelog/changes/v1.1-sample-data.xml/ /databaseChangeLogv1.0-initial-schema.xml 初始化数据库结构?xml version1.0 encodingUTF-8? databaseChangeLog xmlnshttp://www.liquibase.org/xml/ns/dbchangelog xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd !-- Create mqtt_connection table -- changeSet id1 authormqtt-websocket-bridge createTable tableNamemqtt_connection remarksMQTT Connection Table column nameid typeBIGINT autoIncrementtrue constraints primaryKeytrue nullablefalse/ /column column nameclient_id typeVARCHAR(255) remarksMQTT Client ID constraints nullablefalse uniquetrue/ /column column namebroker_url typeVARCHAR(255) remarksMQTT Broker URL constraints nullablefalse/ /column column nameusername typeVARCHAR(255) remarksUsername/ column namepassword typeVARCHAR(255) remarksPassword/ column namekeep_alive typeINT defaultValue60 remarksKeep Alive Interval (seconds)/ column nameclean_session typeTINYINT(1) defaultValue1 remarksClean Session Flag/ column nameprotocol_version typeVARCHAR(50) defaultValueMQTT 3.1.1 remarksProtocol Version/ column nametls_enabled typeTINYINT(1) defaultValue0 remarksTLS Enabled/ column namestatus typeINT defaultValue0 remarksConnection Status (0: disconnected, 1: connected)/ column nameconnected_at typeDATETIME remarksConnection Timestamp/ column namedisconnected_at typeDATETIME remarksDisconnection Timestamp/ column namecreated_at typeDATETIME defaultValueComputedCURRENT_TIMESTAMP remarksCreate Time/ column nameupdated_at typeDATETIME defaultValueComputedCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP remarksUpdate Time/ column namedeleted typeINT defaultValue0 remarksLogical Delete Flag/ /createTable !-- Create indexes for mqtt_connection -- createIndex indexNameidx_client_id tableNamemqtt_connection column nameclient_id/ /createIndex createIndex indexNameidx_status tableNamemqtt_connection column namestatus/ /createIndex createIndex indexNameidx_created_at tableNamemqtt_connection column namecreated_at/ /createIndex /changeSet !-- Create mqtt_subscription table -- changeSet id2 authormqtt-websocket-bridge createTable tableNamemqtt_subscription remarksMQTT Subscription Table column nameid typeBIGINT autoIncrementtrue constraints primaryKeytrue nullablefalse/ /column column nameclient_id typeVARCHAR(255) remarksMQTT Client ID constraints nullablefalse/ /column column nametopic typeVARCHAR(500) remarksMQTT Topic constraints nullablefalse/ /column column nameqos typeINT defaultValue0 remarksQuality of Service (0, 1, 2)/ column namesubscribed_at typeDATETIME defaultValueComputedCURRENT_TIMESTAMP remarksSubscription Timestamp/ column namecreated_at typeDATETIME defaultValueComputedCURRENT_TIMESTAMP remarksCreate Time/ column nameupdated_at typeDATETIME defaultValueComputedCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP remarksUpdate Time/ column namedeleted typeINT defaultValue0 remarksLogical Delete Flag/ /createTable !-- Create indexes for mqtt_subscription -- createIndex indexNameidx_client_id tableNamemqtt_subscription column nameclient_id/ /createIndex createIndex indexNameidx_topic tableNamemqtt_subscription column nametopic/ /createIndex createIndex indexNameidx_subscribed_at tableNamemqtt_subscription column namesubscribed_at/ /createIndex !-- Create unique constraint -- addUniqueConstraint tableNamemqtt_subscription columnNamesclient_id, topic constraintNameuk_client_topic/ /changeSet !-- Create mqtt_message table -- changeSet id3 authormqtt-websocket-bridge createTable tableNamemqtt_message remarksMQTT Message Table column nameid typeBIGINT autoIncrementtrue constraints primaryKeytrue nullablefalse/ /column column nameclient_id typeVARCHAR(255) remarksMQTT Client ID constraints nullablefalse/ /column column nametopic typeVARCHAR(500) remarksMQTT Topic constraints nullablefalse/ /column column namepayload typeTEXT remarksMessage Payload/ column nameqos typeINT defaultValue0 remarksQuality of Service (0, 1, 2)/ column nameretained typeTINYINT(1) defaultValue0 remarksRetained Message Flag/ column namedirection typeVARCHAR(50) remarksMessage Direction (INBOUND, OUTBOUND) constraints nullablefalse/ /column column namecreated_at typeDATETIME defaultValueComputedCURRENT_TIMESTAMP remarksCreate Time/ column namedeleted typeINT defaultValue0 remarksLogical Delete Flag/ /createTable !-- Create indexes for mqtt_message -- createIndex indexNameidx_client_id tableNamemqtt_message column nameclient_id/ /createIndex createIndex indexNameidx_topic tableNamemqtt_message column nametopic/ /createIndex createIndex indexNameidx_direction tableNamemqtt_message column namedirection/ /createIndex createIndex indexNameidx_created_at tableNamemqtt_message column namecreated_at/ /createIndex /changeSet /databaseChangeLogv1.1-sample-data.xml 初始化数据?xml version1.0 encodingUTF-8? databaseChangeLog xmlnshttp://www.liquibase.org/xml/ns/dbchangelog xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.20.xsd !-- Insert sample connection data -- changeSet id4 authormqtt-websocket-bridge insert tableNamemqtt_connection column nameclient_id valueemqx_NJEONID/ column namebroker_url valuetcp://localhost:1883/ column nameusername value/ column namepassword value/ column namekeep_alive valueNumeric60/ column nameclean_session valueNumeric1/ column nameprotocol_version valueMQTT 5/ column namestatus valueNumeric0/ /insert /changeSet /databaseChangeLog

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询