问题标签 [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.
database - 结构和数据的迁移脚本
是否有一个好的或推荐的工具来管理 DDL 和 DML 迁移?
我的大部分应用程序配置都存储在数据库中,我希望能够自由开发和迁移它,而不仅仅是 DDL。对此有何建议?
sql - 向现有表添加不可为空的列失败。“值”属性是否被忽略?
背景:我们有一个 Grails 1.3.7 应用程序,并且正在使用 Liquibase 来管理我们的数据库迁移。
我正在尝试向现有的非空表添加一个新列。
我的变更集如下所示:
应该将值“无文本”插入到每个现有行中,因此满足非空约束。Liquibase“添加列”文档。
但是当应用迁移变更集时,我得到以下异常:
在我看来,它没有使用“值”属性。
如果我将变更集更改为如下所示,我可以实现相同的目标。但我不想(也不应该)这样做。
Liquibase 真的忽略了我的value
属性,还是这里发生了我看不到的其他事情?
我正在使用 Grails 1.3.7、数据库迁移插件 1.0、Postgres 9.0
liquibase - liquibase 是否允许访问 java.sql.Connection 以执行自定义任务
有没有办法让 liquibase 调用自定义 Java 类/插件并让该类访问底层连接以进行数据更改。我看了看,但它只是
因此,我们的更新步骤需要大量的数据操作,这比使用 SQL 更容易在代码中执行和调试。所以我想编写可以提取、转换和保存数据的任务。在 liquibase 框架内这可能吗?
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 数据库?
liquibase - 液基: 插入当前日期
我正在尝试使用 liquibase 插入标签插入数据。当我向 value tag 输入数字时,它工作正常。但是我正在寻找一个简单的函数来处理默认日期(数据库的当前日期时间),即使我没有将它作为我的表定义的一部分。
例如:
这里<column name="create_date" value ="1328055111692"/>
工作正常,它被插入到数据库中。我也尝试过使用<defaultValueDate>
,<valueDate>
但他们也需要一些指定格式的日期输入。
我正在寻找一些像currentDateTimeFunction这样的函数,它将根据我使用的数据库类型转换为 UNIX_TIMESTAMP() 或 SYSDATE 或 now() 。请帮我。
谢谢你,拉姆亚
database - Liquibase 列数据类型乱七八糟
我有一个生产中的现有数据库。我已经使用 liquibase 导出了架构,并创建了一个基本脚本,以便在为新客户安装时使用。Liquibase 将我在 mssql 中的所有 id 列导出为 BIGINT,但实际上它们在数据库中是 NUMERIC。
现在,当我添加一个为旧表创建新表和前八键的升级脚本时,我收到一个错误:列与外键中的引用列的数据类型不同。
发生的情况是,仅升级(并且不会进行全新安装)的客户将在数据库中具有 NUMERIC 列,并且它将与新的 BIGINT 列发生冲突。
问题是我应该怎么做,因为对于每种数据库类型,它也是不同的类型。我搞不清楚了
java - Liquibase 变更集报告将删除表,但表显然没有被删除
我在一个架构完全由 liquibase 管理的实例上运行以下变更集:
而且我能够验证它是否运行,并且之后没有其他变更集执行:
但是我的表仍然存在:
我假设 sql-server 中必须有某种约束或某些东西阻止表被删除,但是我需要一些帮助来了解我需要查找的内容,以便我可以确定我的变更集中需要更改的内容。
postgresql - 添加主键更改列类型
我们的数据库目前没有在任何表上定义主键。所有的id
列都是唯一的索引。我正在删除这些索引并用正确的主键替换它们。
我的问题:在 Postgres 8.4.7 中,当我将主键添加到bigint
表中时,一个表特别将数据类型从 更改为。integer
我有下表定义:
这就是发生的事情:
我考虑了一些解决方法,但我真的很想知道它为什么会发生。还有一些其他表也使用bigint
,所以我不想仅仅破解一个解决方案。
这是使用 Liquibase 编写的脚本,但它也直接在 Postgres 控制台中发生。
更新
另外两点:
- 我可以创建一个带有
bigint
id 和唯一索引的简单表id
,添加主键,并且列类型保持不变。 - 执行时所有表都是空的。
它可能与约束有关吗?
liquibase - Liquibase 没有提交我的更改
我正在使用 JTDS 驱动程序将 Liquibase 从 Java 应用程序运行到 MSSQL。当我运行更新时,我看到它们显示出来,但实际上没有任何东西被提交到数据库。有任何想法吗?下面的代码在 Servlet 中运行。
spring - 使用 LocalContainerEntityManagerFactoryBean 时生成对 SQL 文件的架构更新
我正在使用 LocalContainerEntityManagerFactoryBean 并使用包扫描选项。
我想要一个可以运行的简单实用程序,它将打印出它认为我应该运行的 ddl 更改。然后我将审查并制作我的 liquibase 变更集。