我正在尝试使用 liquibase 在 PostgreSQL 上创建一个数据库。这是我的 dbchangelog 文件
<?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.8.xsd">
<changeSet author="testuser" id="3">
<sql dbms="postgresql"
endDelimiter=";">
CREATE DATABASE testdb;
</sql>
</changeSet>
</databaseChangeLog
当我尝试liquibase update
从我的项目目录运行时,我得到
Unexpected error running Liquibase: ERROR: CREATE DATABASE cannot run inside a transaction block [Failed SQL: (0) CREATE DATABASE testdb]
我看到在 PostgreSQL 中设置 AUTOCOMMIT = ON 可以解决这个问题。但是这种方法只适用于 PostgreSQL 9.4 及以下版本。但我使用的是 AWS RDS PostgreSQL 9.6.8