Liquibase 先决条件不起作用

2024-01-09

我正在尝试使用 liquibase 来跟踪使用 dropwizard-migrations 的 postgresql 数据库的更改。我希望能够在现有的生产数据库上运行迁移,而不是从头开始重建。现在我正在分阶段进行测试。我创建了一个带有前提条件的变更集。

<changeSet id="3" author="me">
    <preConditions onFail="CONTINUE">
        <not>
            <sequenceExists sequenceName="emails_id_seq"/>
        </not>
    </preConditions>
    <createSequence sequenceName="emails_id_seq" startValue="1" incrementBy="1" />
</changeSet>

我的目标是如果序列已经存在,则跳过应用变更集。看似简单,但行不通。

ERROR [2013-09-13 22:19:22,564] liquibase: Change Set migrations.xml::3::me failed.  Error: Error executing SQL CREATE SEQUENCE emails_id_seq START WITH 1 INCREMENT BY 1: ERROR: relation "emails_id_seq" already exists
! liquibase.exception.DatabaseException: Error executing SQL CREATE SEQUENCE emails_id_seq START WITH 1 INCREMENT BY 1: ERROR: relation "emails_id_seq" already exists

我也尝试过使用 MARK_RAN 而不是 CONTINUE 。运气不好。


将变更集应用到现有数据库(无需执行)的一种更简单的方法是使用变更日志同步 http://www.liquibase.org/documentation/command_line.html命令。

以下命令演示了如何提取更改日志,然后将其与当前数据库同步:

liquibase --changeLogFile=mydb.xml generateChangeLog
liquibase --changeLogFile=mydb.xml changelogSync

同步命令的作用是在更改日志表中创建所有条目,以便现在可以正常使用 liquibase 文件来更新数据库:

liquibase --changeLogFile=mydb.xml update
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Liquibase 先决条件不起作用 的相关文章

  • PostgreSQL UPDATE 子字符串替换

    我在测试数据库中有几行 其中值前面有美元符号 我想要UPDATE中的值name的行test1然而 当我将以下查询放在一起时 它清空了表中的六行数据name柱子 UPDATE test1 SET name overlay placing fr
  • Postgresql 在 where 子句中转义单引号 [重复]

    这个问题在这里已经有答案了 所以我尝试运行这样的脚本 select id from owner where owner name john s 我收到此错误 ERROR column john s does not exist 我也尝试过这
  • 在 Linux 中,Distinct SQL 无法与 UNNEST 一起使用

    当我在窗口系统中运行此查询时 行为正确 UNNEST 但是当我运行这个查询时 Linux 的行为不同 unnest 重复记录列表在不同的行上 SELECT DISTINCT billing billmanagement creation d
  • 让 django 不插入某些字段

    我有一个针对 postgresql 数据库表的 Django 模型 我希望 Django 在对象创建期间不要插入 field 3 作为 DB 应该填写的时间戳字段 class AbcModel model id models AutoFie
  • PostgreSQL 错误:EXECUTE 的查询字符串参数为空

    我有一个名为证据的表 其中有一个触发器调用一个存储过程 该过程基本上按月进行表分区 但是 当我开始在负载下插入大 量行时 出现了一个模糊的错误 Npgsql NpgsqlException query string argument of
  • 在 PostgreSQL 的表中添加缺失的日期

    我有一个表 其中包含 2002 年每一天的数据 但其中缺少一些日期 即 2002 年有 354 条记录 而不是 365 条 对于我的计算 我需要在表中包含空值的缺失数据 ID rainfall date 100 110 2 2002 05
  • 如何在 SQLAlchemy 中连接两个表中的数据?

    我有3张桌子 Account User and Organization Account由组成id name and organization id User由组成email and organization id Organization
  • 如何按照最初给出的时区存储和显示日期?

    我有一台服务器正在从不同时区的客户端提供数据 数据源包含人物 他们的出生日期和其他事件日期 出于我们的目的 如果我们可以将日期存储为给我们的日期 那就很方便了 例如 如果客户位于加利福尼亚州 并且告诉我们该人的出生日期是 5 月 31 日
  • 如何使用SpringBoot + JPA存储PostgreSQL jsonb?

    我正在开发一个迁移软件 该软件将消耗来自 REST 服务的未知数据 我已经考虑过使用 MongoDB 但我决定不使用它而使用 PostgreSQL 读完后this https blog codeship com unleash the po
  • Postgres 服务器性能在达到一定数量的记录后急剧下降

    我正在使用游标从大型 postgres 表中检索记录 4亿条记录 使用子表对数据进行分区 我的游标定义为 select from parent table order by indexed column 同时使用 JDBC 和 psql 前
  • 将 PostgreSQL 扩展安装到所有模式

    我在 PostgresQL 9 1 1 上尝试扩展unaccent http www postgresql org docs 9 1 static unaccent html适用于所有模式 所以我运行了命令CREATE EXTENSION
  • 如何更改 PostgreSQL 表中列的数据类型?

    在 PostgreSQL 交互式终端中输入以下命令会导致错误 ALTER TABLE tbl name ALTER COLUMN col name varchar 11 更改列的数据类型的正确命令是什么 请参阅此处的文档 http www
  • 如何使用 keyTextTransform() 进行嵌套 json?

    我的模型有一个 json 字段 我可以使用以下查询访问 jsonfield key1 from django contrib postgres fields jsonb import KeyTextTransform MyModel obj
  • 通过 JDBC 将“daterange”字段值插入 PostgreSQL 表

    我在 PostgreSQL 9 3 有一个表日期范围 http www postgresql org docs 9 3 static rangetypes html字段类型 我可以像使用 JDBC 的字符串一样选择此字段 但无法将其插入表中
  • PostgreSQL 性能 - SELECT 与存储函数

    我正在尝试在 PostgreSQL 上创建一个存储函数来提高性能并存储大查询 并且只需在我的代码中调用该函数即可 例如 如果我有一个函数 CREATE OR REPLACE FUNCTION test max integer RETURNS
  • 是否有可能在 postgres 中捕获外键违规

    我正在尝试将数据插入具有外键约束的表中 如果我插入的行中存在约束违规 我想丢弃该数据 问题是每次我违反约束时 postgres 都会返回一个错误 我是否可以在插入语句中添加一些语句 例如 ON FOREIGN KEY CONSTRAINT
  • 在 Rails 中禁用连接池以使用 PgBouncer

    我们有一个 Ruby on Rails 4 2 8 项目 可以访问大型 PostgreSQL 数据库 我们将使用 PgBouncer 添加一个新的连接池服务器 由于 PgBouncer 将处理数据库连接池 我们是否需要关闭 Rails 自动
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • 更改迁移中的自动​​增量值(PostgreSQL 和 SQLite3)

    我有一个托管在 Heroku 上的项目 想要更改表的自动增量起始值 我在本地使用 SQLite3 Heroku 使用 PostgreSQL 这是我在迁移中所拥有的 class CreateMytable lt ActiveRecord Mi
  • 用户登录时的 Postgresql 触发器

    我正在尝试找出一种方法来了解用户何时登录 Postgres 数据库 有没有办法定义用户登录数据库时触发的触发器 或者是否有一个表或系统视图在任何人登录数据库时都会更新 登录钩子 https github com splendiddata l

随机推荐