问题标签 [liquibase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用 java 在 liquibase 中区分两个新模式?
我的要求是我想比较两个数据库然后我想生成一个 diff sql。注意我只想通过 java 来做。我是 Liquibase 的新手。我找到了一个名为 CommandLineUtils 的 java api,使用它我可以生成新数据库的 changeLog。当我执行方法 doDiffToChangeLog 时,我的 changeLog xml 为空。你能告诉我哪里做错了吗。
这是我的java代码
这是我生成的 test.xml
=== 这是我的changeLog.xml(差异一)
注意archive_dbs 不包含任何表。为什么liquibase didint 显示archive_pmd 中的表在archive_dbs 中丢失?
database-migration - 使用空数据库和预先存在的数据库迁移 Liquibase 数据库
我正在使用 Spring、JPA/Hibernate 和 MS SQL Server/PostgreSQL 开发 Java Web 应用程序。为了使已安装系统的数据库迁移更容易,我想集成 Liquibase 以在应用程序启动时自动进行更新。目前我一直在创建更新脚本,我必须以正确的顺序手动执行。
我测试了与 Spring 的集成,我很快就让它工作了。Liquibase 的元表使用第一个变更集创建并执行更改。问题是已经存在一些已安装的系统,但将来可能会有其他安装。
Liquibase 是否可以检测数据库是否为空并在新安装的系统中自动执行 DDL?否则我将不得不手动执行 DDL,然后启动应用程序。
我想要的是数据库在它为空时自动初始化,或者如果它已经存在则更新。有没有可能用 Liquibase 做到这一点,或者有什么技巧可以让它发挥作用?
maven - 使用 maven 和两个数据库的 liquibase 不起作用
这篇文章描述了如何使用 liquibase 从 maven 更新两个数据库: liquibase using maven with two databases 但是,当我在我的 pom.xml (包括在下面)中尝试完全相同的配置时,它不起作用。运行“mvn liquibase:update”时出现此错误:
在详细设置为 true 的情况下运行,我得到:
所以看起来配置没有传递给liquibase。如果配置部分在执行之外它可以工作,但这会破坏具有多个执行的整个想法 - 您可能希望对不同的执行使用不同的配置。
谢谢,哈里
从 Mark 的评论中尝试“mvn process-resources”后更新。这是 mvn 更新两个数据库的输出。
java - 从 1.9 到 2.0.3 缺少 Liquibase 类
当我从 1.9 到 2.0.3 进行 Liquibase 更新时,FileSystemFileOpener.java 似乎丢失了。
谁能告诉我在 2.0.3 版本中是否有 FileSystemFileOpener.java 的替代品,我在哪里可以找到在 2.0.3 版本中所做的这些更改?
maven-plugin - liquibase 更新SQL
我正在使用 updateSQL 目标来生成更改脚本(SQL 文件)。
生成的 SQL 文件没有预先添加架构名称(用户名)。有什么办法可以实现吗?
创建表 changeSet 将导致
我想要的是
我尝试在生成资源中添加 defaultSchemaName
如果我能得到一些帮助将不胜感激。
谢谢
grails - Grails db-migration 表已经存在
我正在使用 Grails 1.3.7 和 db-migration 插件。
我生成了一个包含我的 delta 的 chagelog.groovy 文件,我设置了这些属性:
现在在我的 Datasource.groovy 中有要更新的 dbCreate。
我启动我的应用程序,它告诉我增量中的表已经创建。
对此有什么想法吗?
java - 如何执行位于 Spring MVC 项目中的脚本(可执行类)?
我正在开发一个 Spring MVC 应用程序并使用 Maven。我目前正在尝试创建一些 Java“脚本”(我不确定我应该称它们为“脚本”,我实际上是指可以在命令上调用的“具有 main(String[] args) 方法的 Java 类”行)使用 Liquibase 做一些工作。
“脚本”将从 Spring MVC 应用程序加载一些上下文文件,并可以从 Web 应用程序访问属性文件。因此,他们将能够使用与应用程序等相同的数据库连接设置。
我的问题是:如何运行这些脚本?
在本地,我正在使用 Eclipse,使用“运行方式/Java 应用程序”可以轻松运行这些“脚本”。但我也希望能够在我的 prod 服务器上运行它们,在该服务器上我不能使用 eclipse 来启动它们。我应该怎么做才能在那里运行它们?
我应该以 .war 以外的其他格式导出我的应用程序吗?我应该从项目中创建一个额外的 .jar 以便能够使用“java -jar”运行脚本吗?
我应该为这些脚本创建一个单独的项目吗?但是,脚本是否能够从位于另一个项目中的 Spring MVC 应用程序加载所需的上下文?
也许有一种我看不到的简单方法来做到这一点?
更新:我看到我可以实现我想要的一种方法是让 Web 应用程序公开 Web 服务作为运行任务的门。然后我可以在命令行上调用那些使用wget或其他东西的人。但我更希望能够直接访问这些类,而无需创建 Web 服务。
java - Spring liquibase 变更集文件更新
我是 liquibase 的新手(我正在使用Spring Liquibase)...有人可以解释一下是否可以在 liquibase 的变更集文件中反映手动数据库更改...我的意思是如果我们有一个表 A 在第一次,然后在我从中删除一列之后,如何在更改集文件中自动更新它...
谢谢
换句话说,我正在寻找spring liquibase 或java中的liquibase diff操作
再次感谢
mysql - 将现有数据与 Liquibase 一起使用?
在使用 Liquibase 时,有什么方法可以利用现有数据生成一些要插入的数据?
例如,假设我想更新 id 为 5 的行,但我事先不知道 id 是否为 5,因为它链接到另一个表,我实际上将从该表中获取 id。有什么方法可以告诉 Liquibase 从 SELECT 查询中获取 id 吗?
我猜这不太可能,因为我觉得 Liquibase 真的是为一种非常结构化的非动态方法而设计的,但问一下也无妨。
谢谢。