问题标签 [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.

0 投票
3 回答
2235 浏览

database - 结构和数据的迁移脚本

是否有一个好的或推荐的工具来管理 DDL 和 DML 迁移?

我的大部分应用程序配置都存储在数据库中,我希望能够自由开发和迁移它,而不仅仅是 DDL。对此有何建议?

0 投票
3 回答
20169 浏览

sql - 向现有表添加不可为空的列失败。“值”属性是否被忽略?

背景:我们有一个 Grails 1.3.7 应用程序,并且正在使用 Liquibase 来管理我们的数据库迁移。

我正在尝试向现有的非空表添加一个新列。

我的变更集如下所示:

应该将值“无文本”插入到每个现有行中,因此满足非空约束。Liquibase“添加列”文档

但是当应用迁移变更集时,我得到以下异常:

在我看来,它没有使用“值”属性。

如果我将变更集更改为如下所示,我可以实现相同的目标。但我不想(也不应该)这样做。

Liquibase 真的忽略了我的value属性,还是这里发生了我看不到的其他事情?

我正在使用 Grails 1.3.7、数据库迁移插件 1.0、Postgres 9.0

0 投票
1 回答
995 浏览

liquibase - liquibase 是否允许访问 java.sql.Connection 以执行自定义任务

有没有办法让 liquibase 调用自定义 Java 类/插件并让该类访问底层连接以进行数据更改。我看了看,但它只是

因此,我们的更新步骤需要大量的数据操作,这比使用 SQL 更容易在代码中执行和调试。所以我想编写可以提取、转换和保存数据的任务。在 liquibase 框架内这可能吗?

0 投票
1 回答
20142 浏览

sql-server-2008 - 使用 MS-SQL Server 设置 Liquibase

我在我们的 MVC3 SQL Server 2008 项目中使用 Liquibase (www.liquibase.org) 来管理数据库迁移/更改。但是,我遇到了第一个障碍:连接到 Microsoft SQL Server 实例。

我正在查看 liquibase 站点上的快速入门教程,但是将 mysql 交换为 sql server DB

我运行这个命令:

并收到此错误:

我尝试添加 --classpath 指向 sqljdbc 驱动程序,但没有成功。

如何使用 liquibase 创建或更新 MS-SQL Server 数据库?

0 投票
8 回答
53782 浏览

liquibase - 液基: 插入当前日期

我正在尝试使用 liquibase 插入标签插入数据。当我向 value tag 输入数字时,它工作正常。但是我正在寻找一个简单的函数来处理默认日期(数据库的当前日期时间),即使我没有将它作为我的表定义的一部分。

例如:

这里<column name="create_date" value ="1328055111692"/>工作正常,它被插入到数据库中。我也尝试过使用<defaultValueDate><valueDate>但他们也需要一些指定格式的日期输入。

我正在寻找一些像currentDateTimeFunction这样的函数,它将根据我使用的数据库类型转换为 UNIX_TIMESTAMP() 或 SYSDATE 或 now() 。请帮我。

谢谢你,拉姆亚

0 投票
1 回答
1188 浏览

database - Liquibase 列数据类型乱七八糟

我有一个生产中的现有数据库。我已经使用 liquibase 导出了架构,并创建了一个基本脚本,以便在为新客户安装时使用。Liquibase 将我在 mssql 中的所有 id 列导出为 BIGINT,但实际上它们在数据库中是 NUMERIC。

现在,当我添加一个为旧表创建新表和前八键的升级脚本时,我收到一个错误:列与外键中的引用列的数据类型不同。

发生的情况是,仅升级(并且不会进行全新安装)的客户将在数据库中具有 NUMERIC 列,并且它将与新的 BIGINT 列发生冲突。

问题是我应该怎么做,因为对于每种数据库类型,它也是不同的类型。我搞不清楚了

0 投票
1 回答
1058 浏览

java - Liquibase 变更集报告将删除表,但表显然没有被删除

我在一个架构完全由 liquibase 管理的实例上运行以下变更集:

而且我能够验证它是否运行,并且之后没有其他变更集执行:

但是我的表仍然存在:

我假设 sql-server 中必须有某种约束或某些东西阻止表被删除,但是我需要一些帮助来了解我需要查找的内容,以便我可以确定我的变更集中需要更改的内容。

0 投票
2 回答
2419 浏览

postgresql - 添加主键更改列类型

我们的数据库目前没有在任何表上定义主键。所有的id列都是唯一的索引。我正在删除这些索引并用正确的主键替换它们。

我的问题:在 Postgres 8.4.7 中,当我将主键添加到bigint表中时,一个表特别将数据类型从 更改为。integer

我有下表定义:

这就是发生的事情:

我考虑了一些解决方法,但我真的很想知道它为什么会发生。还有一些其他表也使用bigint,所以我不想仅仅破解一个解决方案。

这是使用 Liquibase 编写的脚本,但它也直接在 Postgres 控制台中发生。


更新

另外两点:

  • 我可以创建一个带有bigintid 和唯一索引的简单表id,添加主键,并且列类型保持不变。
  • 执行时所有表都是空的。

它可能与约束有关吗?

0 投票
1 回答
1639 浏览

liquibase - Liquibase 没有提交我的更改

我正在使用 JTDS 驱动程序将 Liquibase 从 Java 应用程序运行到 MSSQL。当我运行更新时,我看到它们显示出来,但实际上没有任何东西被提交到数据库。有任何想法吗?下面的代码在 Servlet 中运行。

0 投票
3 回答
772 浏览

spring - 使用 LocalContainerEntityManagerFactoryBean 时生成对 SQL 文件的架构更新

我正在使用 LocalContainerEntityManagerFactoryBean 并使用包扫描选项。

我想要一个可以运行的简单实用程序,它将打印出它认为我应该运行的 ddl 更改。然后我将审查并制作我的 liquibase 变更集。