液化不';不能用Ant提交变更集
我已经用Spring试用过liquibase 3.0测试版(顺便说一句,它在2.0中不起作用)。进展顺利 现在,在回滚所有更改并删除表DATABASECHANGELOG和DATABASECHANGELOGLOCK之后,我使用相同的数据库和changelog使用Ant对其进行测试 问题是liquibase记录了表DATABASECHANGELOG中的所有更改集,这意味着我的配置中没有任何错误,但它没有将更改提交到数据库 这是我的changelog.xml文件:液化不';不能用Ant提交变更集,ant,liquibase,Ant,Liquibase,我已经用Spring试用过liquibase 3.0测试版(顺便说一句,它在2.0中不起作用)。进展顺利 现在,在回滚所有更改并删除表DATABASECHANGELOG和DATABASECHANGELOGLOCK之后,我使用相同的数据库和changelog使用Ant对其进行测试 问题是liquibase记录了表DATABASECHANGELOG中的所有更改集,这意味着我的配置中没有任何错误,但它没有将更改提交到数据库 这是我的changelog.xml文件: <?xml version="
<?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="mysql"/>
</preConditions>
<changeSet id="1" author="bob" runAlways="true">
<createTable tableName="department">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(50)">
<constraints nullable="false"/>
</column>
<column name="active" type="boolean" defaultValueBoolean="true"/>
</createTable>
</changeSet>
<changeSet id="2" author="roger" runAlways="true">
<comment>test add column</comment>
<addColumn tableName="department">
<column name="header" type="varchar(8)"/>
</addColumn>
</changeSet>
<changeSet id="3" author="gabriel" runAlways="true">
<createTable tableName="records">
<column name="id" type="int" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="title" type="varchar(50)"/>
</createTable>
</changeSet>
<changeSet id="4" author="gabriel" context="test" runAlways="true">
<insert tableName="records">
<column name="title" value="Liquibase 0.8 Released"/>
</insert>
<insert tableName="records">
<column name="title" value="Liquibase 0.9 Released"/>
</insert>
</changeSet>
<changeSet id="6" author="nvoxland" runAlways="true">
<comment>test update eam_company</comment>
<sql>update eam_company set companyName='haha' where companyId=15</sql>
</changeSet>
</databaseChangeLog>
<?xml version="1.0" encoding="utf-8"?>
<project name="ncpsys_v2" default="all">
<!-- define time stamp -->
<tstamp>
<format property="current.time" pattern="yyyy_MM_dd_HH_mm_ss"/>
</tstamp>
<!-- define varibles and path -->
<property file="liquibaseconf.properties"/>
<path id="ant.classpath">
<fileset dir="${ant.home}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="sync-database">
<fail unless="db.changelog.file">db.changelog.file not set</fail>
<fail unless="database.url">database.url not set</fail>
<fail unless="database.username">database.username not set</fail>
<fail unless="database.password">database.password not set</fail>
<taskdef resource="liquibasetasks.properties">
<classpath refid="ant.classpath"/>
</taskdef>
<changeLogSync changeLogFile="${db.changelog.file}" driver="${database.driver}" url="${database.url}" username="${database.username}" password="${database.password}" promptOnNonLocalDatabase="true" defaultSchemaName="root" classpathref="ant.classpath">
</changeLogSync>
</target>
<target name="all" depends="sync-database"/>
</project>
我运行Ant任务,liquibase为我创建了表DATABASECHANGELOG和DATABASECHANGELOGLOCK,并在DATABASECHANGELOG中插入了日志
我的生成日志:
sync-database:
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Successfully acquired change log lock
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Creating database history table with name: `ncpsys_v2`.`DATABASECHANGELOG`
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Reading from `ncpsys_v2`.`DATABASECHANGELOG`
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Reading from `ncpsys_v2`.`DATABASECHANGELOG`
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Successfully released change log lock
all:
BUILD SUCCESSFUL
Total time: 2 seconds
但是数据库中没有发生变化。我没有看到表记录和部门被创建并插入数据。更新sql也没有应用
我做错什么了吗?或者在3.0beta1版本下有没有一个bug没有被修复(哦,我也尝试了beta2,没有用,我遇到了一个中文乱码问题)
我在liquibase论坛上发布了这个问题,但没有得到答案,所以我来找你们
请帮帮我!我完全搞糊涂了。您正在运行ANT任务。描述如下:
将所有更改集标记为针对数据库运行。手动更新数据库时非常有用
这解释了为什么没有向数据库提交任何内容。我想你应该用这个任务来代替非常感谢你救了我的命!我太粗心了,没有把手册全部看完。
sync-database:
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Successfully acquired change log lock
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Creating database history table with name: `ncpsys_v2`.`DATABASECHANGELOG`
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Reading from `ncpsys_v2`.`DATABASECHANGELOG`
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Reading from `ncpsys_v2`.`DATABASECHANGELOG`
[changeLogSync] INFO 13-4-2 下午1:22:liquibase: Successfully released change log lock
all:
BUILD SUCCESSFUL
Total time: 2 seconds