首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把maven和液相和hibernate连接起来?

问把maven和液相和hibernate连接起来?
EN

Stack Overflow用户
提问于 2016-05-01 21:39:44
回答 1查看 2.5K关注 0票数 1

我有一个基于Maven的项目,它使用Hibernate和Postgres (Postgres)。

我想使用Liquibase进行数据库迁移。理想情况下,我希望使用以下工作流:

  1. 我创建了初始的"changeset“(mvn液化基:generateChangeLog ?)它应该初始化数据库。
  2. 我添加具有适当注释的实体类。我生成一个"diff“变更集(mvn液化基:diff ?)并将其签入存储库。
  3. 现在,我团队中的每个人都从存储库中提取出来并运行一些东西(mvn更新?)才能得到最新的数据库副本。
  4. 我按需要重复前两个步骤。我知道Liquibase应该支持这种开发工作流。问题是,有很多移动的部件,我很难把东西连接在一起

例如,如何配置Maven中的Liquibase?在liquibase.properties?如何指定将在何处存储变更集?如何创建初始的“变更集”?我知道变更集可以是不同的格式,(XML、JSON等等)有什么优点和缺点,它们可以简单地放在SQL中吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-02 01:12:36

这里有一个maven插件,用于通过基于maven的解决方案来完成这个任务。

http://www.liquibase.org/documentation/maven/generated/update-mojo.html

然后,您可以使用目标清算库:update运行maven构建。

例如,如果您想连接到mysql (清算库支持许多不同的数据库)

代码语言:javascript
复制
    <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

希望这能回答你的问题

编辑:

代码语言:javascript
复制
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/

请注意,此命令目前有一些限制。它不导出下列类型的对象:存储过程、函数、包触发器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36972281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档