程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Database(Mysql)發版控制二

Database(Mysql)發版控制二

編輯:MySQL綜合教程

Database(Mysql)發版控制二


author:skate
time:2014/08/18

Database(Mysql)發版控制

The Liquibase Tool related Database

一.Installation & Configration
二.Advanced Usage of the Liquibase
三.Frequently Questions
二.Advanced Usage of the Liquibase

1.實際場景模擬
實際需求:需要把不同環境的不同分支的數據庫變更合並,並按需求應用或回滾到不同的DB環境中,實現對DB發版的管理

DB的環境:dev,qa,sandbox,prod

規劃DB發版目錄,如:

database
Release-2014-05
db.Changelog-master.xml
000_CreateTable.sql
001_Init.sql
....
032_Update.sql
Release-2014-06
db.Changelog-master.xml
000_CreateTable.sql
001_Init.sql
....
192_Update.sql
Release-2014-07
db.Changelog-master.xml
000_CreateTable.sql
001_Init.sql
....
132_Update.sql


db.Changelog-master.xml是數據庫變更的主文件,其包括每一個數據庫的changeset文件,這樣可以控制每個changeset的執行順序和大小,如下是一個例子:

# more db.Changelog-master.xml
<?xml version="1.0" encoding="UTF-8" ?>
<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-3.0.xsd">

<preConditions>
<dbms type="oracle"/>
</preConditions>

<include file="database/Release-2014-05/000_CreateTable.sql"/>
<!-- include file="database/Release-2014-05/001_Init.sql"/ -->
<!-- include file="database/Release-2014-05/032_Update.sql"/ -->

</databaseChangeLog>


# more 000_CreateTable.sql
--liquibase formatted sql

--changeset skate:Release-2014-05_000_CreateTable.sql context:test

CREATE TABLE table3 (
id int(11) NOT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=Innodb;

ALTER TABLE table3 CHANGE id id INT( 11 ) AUTO_INCREMENT;
ALTER TABLE table3 CHANGE name firstname VARCHAR( 255 );
INSERT INTO table3 (id, firstname) VALUES (NULL, 'name1'),(NULL, 'name2'), (NULL, 'name3');

--rollback drop table table3;
或者用xml文件

# more 000_CreateTable.xml
<?xml version="1.0" 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-3.0.xsd">
<changeSet author="Skate" id="Release-2014-05_000_CreateTable.sql context:test ">
<createTable tableName="testtab">
<column autoIncrement="true" name="id" type="INT(10)">
<constraints primaryKey="true"/>
</column>
<column name="firstname" type="VARCHAR(50)"/>
<column name="lastname" type="VARCHAR(50)">
<constraints nullable="false"/>
</column>
<column name="state" type="VARCHAR(2)"/>
</createTable>
</changeSet>
</databaseChangeLog>

每個developer可以通過自己本機的liquibase把數據庫的changset同步到dev環境

首先檢查changelog是否有錯誤
[root@skatedb55 liquibase30]# sh liquibase --contexts=dev --defaultSchemaName=test5 --logLevel=debug --changeLogFile=/tmp/db.Changelog-master.xml --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate validate
Liquibase Home: /mysql/software/liquibase30
DEBUG 8/19/14 2:45 PM:liquibase: Connected to [email protected]@jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/19/14 2:45 PM:liquibase: Setting auto commit to false from true
INFO 8/19/14 2:46 PM:liquibase: Reading from test5.DATABASECHANGELOG
DEBUG 8/19/14 2:46 PM:liquibase: Executing QUERY database command: SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,TAG,EXECTYPE,DESCRIPTION,COMMENTS FROM test5.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
DEBUG 8/19/14 2:46 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for inputStream as 00ba919fb68564b7f5f8dab227e4f6a8
DEBUG 8/19/14 2:46 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for 7:00ba919fb68564b7f5f8dab227e4f6a8: as 283384b19a5c2734d153462833903290
No validation errors found
Liquibase 'validate' Successful
[root@skatedb55 liquibase30]#

為本次更新創建tag(方便以後按需要回滾)
[root@skatedb55 liquibase30]# sh liquibase --contexts=dev --defaultSchemaName=test5 --logLevel=debug --changeLogFile=/tmp/db.Changelog-master.xml --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate tag Release-2014-05_000_CreateTable
Liquibase Home: /mysql/software/liquibase30
DEBUG 8/19/14 2:54 PM:liquibase: Connected to [email protected]@jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/19/14 2:54 PM:liquibase: Setting auto commit to false from true
DEBUG 8/19/14 2:54 PM:liquibase: Executing QUERY database command: select count(*) from test5.DATABASECHANGELOGLOCK
DEBUG 8/19/14 2:54 PM:liquibase: Executing QUERY database command: SELECT LOCKED FROM test5.DATABASECHANGELOGLOCK WHERE ID=1
DEBUG 8/19/14 2:54 PM:liquibase: Lock Database
DEBUG 8/19/14 2:54 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'skatedb55 (fe80:0:0:0:218:51ff:fe85:562a%3)', LOCKGRANTED = '2014-08-19 14:54:02.036' WHERE ID = 1 AND LOCKED = 0
INFO 8/19/14 2:54 PM:liquibase: Successfully acquired change log lock
DEBUG 8/19/14 2:54 PM:liquibase: Executing QUERY database command: SELECT MD5SUM FROM test5.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL
DEBUG 8/19/14 2:54 PM:liquibase: Executing QUERY database command: SELECT COUNT(*) FROM test5.DATABASECHANGELOG
DEBUG 8/19/14 2:54 PM:liquibase: Executing EXECUTE database command: UPDATE test5.DATABASECHANGELOG SET TAG = 'Release-2014-05_000_CreateTable' WHERE DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM (SELECT DATEEXECUTED FROM test5.DATABASECHANGELOG) AS X)
INFO 8/19/14 2:54 PM:liquibase: Reading from test5.DATABASECHANGELOG
DEBUG 8/19/14 2:54 PM:liquibase: Executing QUERY database command: SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,TAG,EXECTYPE,DESCRIPTION,COMMENTS FROM test5.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
DEBUG 8/19/14 2:54 PM:liquibase: Release Database Lock
DEBUG 8/19/14 2:54 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1
INFO 8/19/14 2:54 PM:liquibase: Successfully released change log lock
Successfully tagged [email protected]@jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8
Liquibase 'tag' Successful
You have new mail in /var/spool/mail/root
[root@skatedb55 liquibase30]#

執行數據庫變更到dev數據庫
[root@skatedb55 liquibase30]# sh liquibase --contexts=test --defaultSchemaName=test5 --logLevel=debug --changeLogFile=/tmp/db.Changelog-master.xml --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate update
Liquibase Home: /mysql/software/liquibase30
DEBUG 8/19/14 2:39 PM:liquibase: Connected to [email protected]@jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/19/14 2:39 PM:liquibase: Setting auto commit to false from true
DEBUG 8/19/14 2:39 PM:liquibase: Executing QUERY database command: select count(*) from test5.DATABASECHANGELOGLOCK
DEBUG 8/19/14 2:39 PM:liquibase: Executing QUERY database command: SELECT LOCKED FROM test5.DATABASECHANGELOGLOCK WHERE ID=1
DEBUG 8/19/14 2:39 PM:liquibase: Lock Database
DEBUG 8/19/14 2:39 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'skatedb55 (fe80:0:0:0:218:51ff:fe85:562a%3)', LOCKGRANTED = '2014-08-19 14:39:26.745' WHERE ID = 1 AND LOCKED = 0
INFO 8/19/14 2:39 PM:liquibase: Successfully acquired change log lock
DEBUG 8/19/14 2:39 PM:liquibase: Executing QUERY database command: SELECT MD5SUM FROM test5.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL
INFO 8/19/14 2:39 PM:liquibase: Reading from test5.DATABASECHANGELOG
DEBUG 8/19/14 2:39 PM:liquibase: Executing QUERY database command: SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,TAG,EXECTYPE,DESCRIPTION,COMMENTS FROM test5.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
INFO 8/19/14 2:39 PM:liquibase: Reading from test5.DATABASECHANGELOG
DEBUG 8/19/14 2:39 PM:liquibase: Executing QUERY database command: SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,TAG,EXECTYPE,DESCRIPTION,COMMENTS FROM test5.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
DEBUG 8/19/14 2:39 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for inputStream as 00ba919fb68564b7f5f8dab227e4f6a8
DEBUG 8/19/14 2:39 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for 7:00ba919fb68564b7f5f8dab227e4f6a8: as 283384b19a5c2734d153462833903290
DEBUG 8/19/14 2:39 PM:liquibase: Release Database Lock
DEBUG 8/19/14 2:39 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1
INFO 8/19/14 2:39 PM:liquibase: Successfully released change log lock
Liquibase Update Successful
You have new mail in /var/spool/mail/root

2.Liquibase的一些高級用法

按指定tag rollback
[root@skatedb55 liquibase30]# sh liquibase --contexts=dev --defaultSchemaName=test5 --logLevel=debug --changeLogFile=/tmp/db.Changelog-master.xml --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate rollback Release-2014-05_000_CreateTable
Liquibase Home: /mysql/software/liquibase30
DEBUG 8/19/14 3:06 PM:liquibase: Connected to [email protected]@jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/19/14 3:06 PM:liquibase: Setting auto commit to false from true
DEBUG 8/19/14 3:06 PM:liquibase: Executing QUERY database command: select count(*) from test5.DATABASECHANGELOGLOCK
DEBUG 8/19/14 3:06 PM:liquibase: Executing QUERY database command: SELECT LOCKED FROM test5.DATABASECHANGELOGLOCK WHERE ID=1
DEBUG 8/19/14 3:06 PM:liquibase: Lock Database
DEBUG 8/19/14 3:06 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'skatedb55 (fe80:0:0:0:218:51ff:fe85:562a%3)', LOCKGRANTED = '2014-08-19 15:06:55.866' WHERE ID = 1 AND LOCKED = 0
INFO 8/19/14 3:06 PM:liquibase: Successfully acquired change log lock
DEBUG 8/19/14 3:07 PM:liquibase: Executing QUERY database command: SELECT MD5SUM FROM test5.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL
INFO 8/19/14 3:07 PM:liquibase: Reading from test5.DATABASECHANGELOG
DEBUG 8/19/14 3:07 PM:liquibase: Executing QUERY database command: SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,TAG,EXECTYPE,DESCRIPTION,COMMENTS FROM test5.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
DEBUG 8/19/14 3:07 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for inputStream as 00ba919fb68564b7f5f8dab227e4f6a8
DEBUG 8/19/14 3:07 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for 7:00ba919fb68564b7f5f8dab227e4f6a8: as 283384b19a5c2734d153462833903290
DEBUG 8/19/14 3:07 PM:liquibase: Release Database Lock
DEBUG 8/19/14 3:07 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1
INFO 8/19/14 3:07 PM:liquibase: Successfully released change log lock
Liquibase Rollback Successful
You have new mail in /var/spool/mail/root

按給定時間rollback
[root@skatedb55 liquibase30]# sh liquibase --contexts=dev --defaultSchemaName=test5 --logLevel=debug --changeLogFile=/tmp/db.Changelog-master.xml --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate rollbackToDate 2014-08-19 14:01:28
Liquibase Home: /mysql/software/liquibase30
DEBUG 8/19/14 3:14 PM:liquibase: Connected to [email protected]@jdbc:mysql://localhost/test2?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/19/14 3:14 PM:liquibase: Setting auto commit to false from true
DEBUG 8/19/14 3:14 PM:liquibase: Executing QUERY database command: select count(*) from test5.DATABASECHANGELOGLOCK
DEBUG 8/19/14 3:14 PM:liquibase: Executing QUERY database command: SELECT LOCKED FROM test5.DATABASECHANGELOGLOCK WHERE ID=1
DEBUG 8/19/14 3:14 PM:liquibase: Lock Database
DEBUG 8/19/14 3:14 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'skatedb55 (fe80:0:0:0:218:51ff:fe85:562a%3)', LOCKGRANTED = '2014-08-19 15:14:46.132' WHERE ID = 1 AND LOCKED = 0
INFO 8/19/14 3:14 PM:liquibase: Successfully acquired change log lock
DEBUG 8/19/14 3:14 PM:liquibase: Executing QUERY database command: SELECT MD5SUM FROM test5.DATABASECHANGELOG WHERE MD5SUM IS NOT NULL
INFO 8/19/14 3:14 PM:liquibase: Reading from test5.DATABASECHANGELOG
DEBUG 8/19/14 3:14 PM:liquibase: Executing QUERY database command: SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,TAG,EXECTYPE,DESCRIPTION,COMMENTS FROM test5.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for inputStream as 00ba919fb68564b7f5f8dab227e4f6a8
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/db.Changelog-master.xml: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for 7:00ba919fb68564b7f5f8dab227e4f6a8: as 283384b19a5c2734d153462833903290
INFO 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Rolling Back Changeset:/tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Rolling Back ChangeSet: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Executing EXECUTE database command: drop table table3
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: ChangeSet /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate has been successfully rolled back.
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Executing EXECUTE database command: DELETE FROM test5.DATABASECHANGELOG WHERE ID='Release-2014-05_000_CreateTable.sql' AND AUTHOR='skate' AND FILENAME='/tmp/database/Release-2014-05/000_CreateTable.sql'
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for inputStream as 00ba919fb68564b7f5f8dab227e4f6a8
DEBUG 8/19/14 3:14 PM:liquibase: /tmp/database/Release-2014-05/000_CreateTable.sql::Release-2014-05_000_CreateTable.sql::skate: Computed checksum for 7:00ba919fb68564b7f5f8dab227e4f6a8: as 283384b19a5c2734d153462833903290
DEBUG 8/19/14 3:14 PM:liquibase: Release Database Lock
DEBUG 8/19/14 3:14 PM:liquibase: Executing UPDATE database command: UPDATE test5.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1
INFO 8/19/14 3:14 PM:liquibase: Successfully released change log lock
Liquibase Rollback Successful
You have new mail in /var/spool/mail/root
[root@skatedb55 liquibase30]#

生成當前數據庫狀態的文檔
[root@skatedb55 liquibase30]# sh liquibase --driver=com.mysql.jdbc.Driver --changeLogFile=/tmp/mysql_liquibase_changelog.xml --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test5?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate dbDoc /tmp/dbdoc/
Liquibase Home: /mysql/software/liquibase30
Liquibase 'dbDoc' Successful
You have new mail in /var/spool/mail/root

產生數據庫的changelog
sh liquibase --driver=com.mysql.jdbc.Driver --changeLogFile=/tmp/mysql_liquibase_changelog.xml --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test5?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate generateChangeLog

對比兩個數據庫
[root@skatedb55 liquibase30]# sh liquibase --logLevel=debug --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://10.10.0.117/test1?useUnicode=true&characterEncoding=UTF-8" --username=test --password=test@df diff --referenceUrl="jdbc:mysql://10.20.0.55/test5?useUnicode=true&characterEncoding=UTF-8" --referenceUsername=skate --referencePassword=skate
Liquibase Home: /mysql/software/liquibase30
DEBUG 8/21/14 9:24 AM:liquibase: Connected to [email protected]@jdbc:mysql://10.10.0.117/test1?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/21/14 9:24 AM:liquibase: Setting auto commit to false from true
DEBUG 8/21/14 9:24 AM:liquibase: Connected to [email protected]@jdbc:mysql://10.20.0.55/test5?useUnicode=true&characterEncoding=UTF-8
DEBUG 8/21/14 9:24 AM:liquibase: Setting auto commit to false from true

Diff Results:
Reference Database: [email protected] @ jdbc:mysql://10.20.0.55/test5?useUnicode=true&characterEncoding=UTF-8 (Default Schema: test5)
Comparison Database: [email protected] @ jdbc:mysql://10.10.0.117/test1?useUnicode=true&characterEncoding=UTF-8 (Default Schema: test1)
Product Name: EQUAL
Product Version: EQUAL
Missing Catalog(s):
test5
Unexpected Catalog(s):
test1
Changed Catalog(s): NONE
Missing Column(s):
t2.a
t2.b
Unexpected Column(s): NONE
Changed Column(s): NONE
Missing Foreign Key(s): NONE
Unexpected Foreign Key(s): NONE
Changed Foreign Key(s): NONE
Missing Index(s): NONE
Unexpected Index(s): NONE
Changed Index(s): NONE
Missing Primary Key(s): NONE
Unexpected Primary Key(s): NONE
Changed Primary Key(s): NONE
Missing Schema(s): NONE
Unexpected Schema(s): NONE
Changed Schema(s): NONE
Missing Sequence(s): NONE
Unexpected Sequence(s): NONE
Changed Sequence(s): NONE
Missing Table(s):
t2
Unexpected Table(s): NONE
Changed Table(s): NONE
Missing Unique Constraint(s): NONE
Unexpected Unique Constraint(s): NONE
Changed Unique Constraint(s): NONE
Missing View(s): NONE
Unexpected View(s): NONE
Changed View(s): NONE
Liquibase 'diff' Successful
You have new mail in /var/spool/mail/root
[root@skatedb55 liquibase30]#

列出當前數據庫的lock
[root@skatedb55 liquibase30]# sh liquibase --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test5?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate listLocks
Liquibase Home: /mysql/software/liquibase30
Database change log locks for [email protected]@jdbc:mysql://localhost/test5?useUnicode=true&characterEncoding=UTF-8
- No locks
Liquibase 'listLocks' Successful
You have new mail in /var/spool/mail/root
[root@skatedb55 liquibase30]#

Release當前數據庫的所有的lock
[root@skatedb55 liquibase30]# sh liquibase --driver=com.mysql.jdbc.Driver --classpath=/usr/share/java/mysql-connector-java-5.1.17.jar --url="jdbc:mysql://localhost/test5?useUnicode=true&characterEncoding=UTF-8" --username=skate --password=skate releaseLocks
Liquibase Home: /mysql/software/liquibase30
Successfully released all database change log locks for [email protected]@jdbc:mysql://localhost/test5?useUnicode=true&characterEncoding=UTF-8
Liquibase 'releaseLocks' Successful
[root@skatedb55 liquibase30]#

--------end---------

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved