液化不';t执行SQLs并返回更新成功

液化不';t执行SQLs并返回更新成功,sql,postgresql,liquibase,Sql,Postgresql,Liquibase,我已经在我的电脑上创建了一个新的PostgreSQL数据库 CREATE DATABASE "Test_Liquibase_Versionin" WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'English_United States.1252' LC_CTYPE = 'English_United States.1252'

我已经在我的电脑上创建了一个新的PostgreSQL数据库

  CREATE DATABASE "Test_Liquibase_Versionin"
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'English_United States.1252'
       LC_CTYPE = 'English_United States.1252'
       CONNECTION LIMIT = -1;
下载liquibase-3.4.2-bin并运行以下命令:

C:\LiquiBase\LiquiBase.bat--driver=org.postgresql.driver--classpath=“C:\LiquiBase\driver\postgresql-9.4.1212.jar”--changeLogFile=C:\LiquiBase\changes\databaseChangeLog.sql--url=“jdbc:postgresql://localhost:5432/Test_Liquibase_Versionin?user=test&password=Password“更新
获得此响应
Liquibase更新成功

检查数据库,注意我有两个表
databasechangelog,databasechangeloglock

将databaseChangeLog.sql更改为如下所示:

--liquibase formatted sql


create table employees( uuid int, name Varchar(10));
insert into employees values(1, 'Mr');
insert into employees values(2, 'Mail');
create table depts( dept_id int, dep_name Varchar(10));
再次执行
C:\LiquiBase\LiquiBase.bat……

获得此响应
Liquibase更新成功

已登录到我的数据库-但没有预期的新表。
原因可能是什么?我可以做些什么来测试出错的地方?

您需要向脚本中添加一个变更集

这是因为您告诉Liquibase您的sql脚本是
Liquibase格式的sql
。但是,由于它没有任何变更集,所以它什么也不做

--liquibase formatted sql

--changeSet PeterH:Inserting-Values1 endDelimiter:; splitStatements:true stripComments:false runOnChange:false

create table employees( uuid int, name Varchar(10));
insert into employees values(1, 'Mr');
insert into employees values(2, 'Mail');
create table depts( dept_id int, dep_name Varchar(10));

您需要将变更集添加到脚本中

这是因为您告诉Liquibase您的sql脚本是
Liquibase格式的sql
。但是,由于它没有任何变更集,所以它什么也不做

--liquibase formatted sql

--changeSet PeterH:Inserting-Values1 endDelimiter:; splitStatements:true stripComments:false runOnChange:false

create table employees( uuid int, name Varchar(10));
insert into employees values(1, 'Mr');
insert into employees values(2, 'Mail');
create table depts( dept_id int, dep_name Varchar(10));

在我的例子中,我在文件上设置liquibase头,但问题是用户名(进行更改的用户)和参数之间存在空格:

--liquibase formatted sql
--changeset Jenkins: scriptname.sql stripComments:true splitStatements:true

如您所见,“Jenkins:”和“scriptname.sql”之间有一个空格。我已经删除了那个空格,它运行正常

在我的例子中,我在文件上设置了liquibase头,但问题是用户名(进行更改的用户)和参数之间有空格:

--liquibase formatted sql
--changeset Jenkins: scriptname.sql stripComments:true splitStatements:true

如您所见,“Jenkins:”和“scriptname.sql”之间有一个空格。我已经删除了那个空格,它运行正常

数据库更改日志中是否有任何内容?不,它是空的。
数据库更改日志中是否有任何内容
?不,它是空的。我怀疑是这样的,但由于我只使用XML格式,我不确定。记不起postgresql应该使用哪个endDelimiter,有人会帮我的
应该没问题,我猜我怀疑是这样的,但因为我只使用XML格式,所以我不确定。不记得postgresql应该使用哪个endDelimiter,有人会帮我的
我想应该没问题