我有一个基于Maven的项目,它使用Hibernate和Postgres (Postgres)。
我想使用Liquibase进行数据库迁移。理想情况下,我希望使用以下工作流:
例如,如何配置Maven中的Liquibase?在liquibase.properties?如何指定将在何处存储变更集?如何创建初始的“变更集”?我知道变更集可以是不同的格式,(XML、JSON等等)有什么优点和缺点,它们可以简单地放在SQL中吗?
发布于 2016-05-02 01:12:36
这里有一个maven插件,用于通过基于maven的解决方案来完成这个任务。
http://www.liquibase.org/documentation/maven/generated/update-mojo.html
然后,您可以使用目标清算库:update运行maven构建。
例如,如果您想连接到mysql (清算库支持许多不同的数据库)
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
<changeLogFile>${changelog}</changeLogFile>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.schema}</url>
<username>${mysql.username}</username>
<password>${mysql.password}</password>
</configuration>
</plugin>
</plugins>
</build>我们也可以与hibernate集成,并且在github中有一个项目,请查看他们通过hibernate进行此操作的文档。
https://github.com/liquibase/liquibase-hibernate/releases
希望这能回答你的问题
编辑:
liquibase --driver=oracle.jdbc.OracleDriver \
--classpath=\path\to\classes:jdbcdriver.jar \
--changeLogFile=com/example/db.changelog.xml \
--url="jdbc:oracle:thin:@localhost:1521:XE" \
--username=scott \
--password=tiger \
generateChangeLog这将为现有数据库生成变更量。
参考- changelogs.html
参考- http://bytefilia.com/managing-database-schema-changes-liquibase-existing-schema/
请注意,此命令目前有一些限制。它不导出下列类型的对象:存储过程、函数、包触发器
https://stackoverflow.com/questions/36972281
复制相似问题