这是一个场景:我有一个没有Liquibase的现有生产数据库,但是对于开发环境,我开始使用Liquibase。未来的生产变化不一定必须由执行SQL脚本的DBA完成。好的,我使用liquibase:updateSQL来创建它们,问题是还生成了获取锁的查询,例如:
-- *********************************************************************
-- Update Database Script
-- *********************************************************************
-- Change Log: src/main/resources/db/masterchangelog.xml
-- Ran at: 3/29/16 12:13 PM
-- Against: user@*.*.*.*@jdbc:mysql://*.*.*.*:3306/schema_name
-- Liquibase version: 3.4.1
-- *********************************************************************
-- Lock Database
UPDATE DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'fe80:0:0:0:5c63:d0ff:febe:1bc9%veth8848306 (fe80:0:0:0:5c63:d0ff:febe:1bc9%veth8848306)', LOCKGRANTED = '2016-03-29 12:13:24.142' WHERE ID = 1 AND LOCKED = 0;
--My DB Changes
UPDATE ...
INSERT ...
DELETE ...
etc
-- Release Database Lock
UPDATE DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1;
由于表格DATABASECHANGELOGLOCK在生产中不存在,有没有办法省略这些查询?
感谢您的建议。