liquibase 相关问题

Liquibase是一个独立于数据库的开源库,用于跟踪,管理和应用数据库更改。它建立在一个简单的前提上:所有数据库更改都以人类可读但可跟踪的形式存储,并检入源代码控制。

尝试将更改集日志更新到 DATABASECHANGELOG 时出现 Liquibase 错误

我正在尝试在 liquibase 中的 create 语句下面运行 -- liquibase 格式化的 sql -- 更改用户名:1 创建表作业_实例 ( INSTANCE_ID BIGINT NOT NULL 主键, 版本...

回答 1 投票 0

如何通过liquibase更改自动增量列的起始值?

我的数据库使用MySql。我已经找到了如何在创建表时设置列的起始自动增量值,但我需要知道如何为现有列设置新的起始值。 ...

回答 3 投票 0

Liquibase 与 MySQL 导致“表‘databasechangelog’已存在”错误

我正在尝试从 MariaDB 迁移到 MySQL。当使用 Maven 第二次运行 liquibase 时,出现以下错误: 表“databasechangelog”已存在 这是maven插件配置...

回答 2 投票 0

并行运行 liquibase 更改集

我们使用liquibase进行数据库升级。更改集在所有数据库模式上按顺序执行。我们获取模式列表并迭代它并在每个模式上执行更改集。跑步

回答 1 投票 0

LIquibase 数据库文档

我正在尝试为 Liquibase 执行 dbdoc 命令,我尝试执行 mvn liquibase:dbDoc -Dliquibase.outputDirectory=target/docs” 在我的项目所在目录的cmd中命令。但是...

回答 1 投票 0

Liquibase / 长时间运行的数据库脚本

使用 Spring Boot 并通过 Liquibase 管理数据库更改,所有更改都在应用程序启动时执行。这对于快速运行的更改来说完全没问题。 一些变化,例如添加DB索引,可以...

回答 1 投票 0

使用 SQL 序列

如何将如下所示的sql序列放入liquibase变更日志文件(xml)中? 有可能吗? 创建序列sequence_option_1 从合并开始((从实体中选择最大(id),其中酸...

回答 1 投票 0

Dockerized Liquibase 无法连接到 Dockerized Scylladb,出现“DatabaseException:无法创建连接”

我正在使用 liquibase 迁移工具,它通过终端工作正常(更新 scylla db 中的表)。 现在我想对其进行 dockerize,为此我执行以下步骤: 创建 liquibase.prop...

回答 1 投票 0

如何检查数据库Sequencer是否与数据库记录中的最高当前值同步

我需要确定 Sequencer 的当前值是否与特定 ID 列的最高值同步。例如: 记录| ID ------------- 记录1 1 记录2 2 记录3 7 记录...

回答 1 投票 0

Liquibase - 如何为现有数据库生成变更日志

我正在尝试使用 liquibase 来生成更改日志,首先对数据库的当前状态进行快照。 环境详情: 操作系统:Windows 7 32 x86, Java JDK 1.7, mysql jdbc 驱动程序来自

回答 4 投票 0

如何从 Liquibase 中的现有列添加具有默认值的新列

我正在使用 Postgres DB,对于迁移,我正在使用 Liquibase。 我有一个包含以下列的订单表: 身份证 |日期 |姓名 |创作者| ... 我需要添加一个新列来保存用途...

回答 3 投票 0

Liquibase 4.0 中删除了通过绝对路径指定文件

当我运行 Spring Boot 应用程序时,出现以下 liquibase 错误: Liquibase 4.0 中删除了通过绝对路径指定文件的功能。请使用相对路径或在类中添加“/”...

回答 7 投票 0

LiquibasegenerateChangeLog 失败:Java 堆空间

当我尝试从 DB2 数据库生成 SQL 数据时,遇到 Java 堆空间问题。大约有 25 个表,大约 1000 条记录。 我使用以下脚本生成变更集...

回答 2 投票 0

Liquibase 在测试执行后执行迁移

我在测试我的应用程序时遇到了非常奇怪的(对我来说)问题,收到此异常: 原因:liquibase.exception.MigrationFailedException:变更集 db/changelog/inse 迁移失败...

回答 1 投票 0

由以下原因引起:org.postgresql.util.PSQLException:错误:未选择在其中创建模式

我使用 PgAdmin 创建了一个新的数据库方案。但是当我使用 Liqudbase 依赖项启动 Spring Boot 应用程序时,出现此错误: 导致:liquibase.exception.DatabaseException:错误:没有架构...

回答 1 投票 0

检查唯一约束是否存在并使用 liquibase 将其删除

我有一个变更集,其中我最初检查唯一约束是否存在,然后如果存在,它将删除该约束。 我有一个变更集,其中我首先检查唯一约束是否存在,如果存在,则会删除该约束。 <changeSet author="loren" id="DROP_UNIQUE_CONSTRAINT_RULEPRIORITY_ORACLE_v1" dbms="oracle"> <preConditions onFail="MARK_RAN"> <sqlCheck expectedResult="1"> SELECT COUNT(*) FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME='UC_RULES_PRIORITY' </sqlCheck> </preConditions> <dropUniqueConstraint constraintName="UC_RULES_PRIORITY" schemaName="${main.schema}" tableName="RULES"/> </changeSet> 问题是它似乎没有通过前提条件。它总是说 MARK_RAN 意味着没有找到约束。反过来,约束永远不会被放弃。 我尝试在我的数据库中执行 SELECT 语句,它返回 1。 这是正确的方法还是有替代解决方案? 总结评论: <changeSet author="loren" id="DROP_UNIQUE_CONSTRAINT_RULEPRIORITY_ORACLE_v1" dbms="oracle"> <preConditions onFail="MARK_RAN"> <sqlCheck expectedResult="1"> SELECT COUNT(*) FROM all_constraints WHERE CONSTRAINT_NAME='UC_RULES_PRIORITY' AND OWNER='${main.schema}' </sqlCheck> </preConditions> <dropUniqueConstraint constraintName="UC_RULES_PRIORITY" schemaName="${main.schema}" tableName="RULES"/> </changeSet> @Loren:请调整和/或发布您自己的答案。

回答 1 投票 0

Liquibase“modifyDataType”标签始终使列可以为空

当我这样做时- 在 liquibase 中,它总是重置可为 null 的常量...

回答 2 投票 0

Liquibase插入脚本在使用h2数据库时不插入数据

使用 h2 数据库进行 Spring Boot 测试时,Liquibase 插入脚本不插入数据

回答 1 投票 0

如何读取liquibase变更日志中的环境变量

我正在更改集中执行 sql 查询,如下所示: 我正在更改集中执行 sql 查询,如下所示: <changeSet author="xxxxx" id="1682329977552-1" context="unittest"> <preConditions onFail="CONTINUE"> <sqlCheck expectedResult="1"> SELECT COUNT(*) FROM pg_roles WHERE rolname='myuser';</sqlCheck> </preConditions> <sqlFile dbms="!h2, oracle, mysql, postgresql" encoding="UTF-8" endDelimiter="\nGO" path="db_grants.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true"/> </changeSet> 如您所见,myuser是硬编码的,这是不可取的,我正在寻找一种从环境变量中读取该用户的方法,但想知道它是否可能。 我也在 db_grants.sql 中使用该用户,它向用户授予了一些访问权限: grant select on all tables in schema public to myuser; grant insert on all tables in schema public to myuser; grant delete on all tables in schema public to myuser; grant update on all tables in schema public to myuser; 值得一提的是,这些脚本在 openshift 集群环境上运行。 如 property-substitution 中所写,您可以使用 -D 前缀将属性传递给 liquibase 命令 CLI(或者您可以使用其他方法),因此类似 -Dproperty-name=somevalue 的内容,然后在您的 changeSet/sql 中将其用作 ${property-name} . cmd:liquibase update -Dpguser=myuser <changeSet author="xxxxx" id="1682329977552-1" context="unittest"> <preConditions onFail="CONTINUE"> <sqlCheck expectedResult="1"> SELECT COUNT(*) FROM pg_roles WHERE rolname='${pguser}';</sqlCheck> </preConditions> <sqlFile dbms="!h2, oracle, mysql, postgresql" encoding="UTF-8" endDelimiter="\nGO" path="db_grants.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true"/> </changeSet> grant select on all tables in schema public to ${pguser}; grant insert on all tables in schema public to ${pguser}; grant delete on all tables in schema public to ${pguser}; grant update on all tables in schema public to ${pguser};

回答 1 投票 0

如何正确删除使用Liquibase的数据库中的模式?

我有一个 Postgres 数据库,其中包含来自另一个 DWH 的外部架构,但最近这个原始架构已从那里删除。我们有 init.sql 文件,其内容如下(经过编辑以删除细节)...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.