【问题标题】:Wait for CockroachDB Command to Finish等待 CockroachDB 命令完成
【发布时间】:2019-12-06 23:04:26
【问题描述】:

我目前有一个.sql 文件,其中包含:

DROP VIEW IF EXISTS vw_example;

CREATE VIEW vw_example as
SELECT a FROM b;

在作为 flyway 迁移的一部分运行此命令时,如果视图已存在,则会失败,就好像创建命令没有等待 DROP IF EXISTS 完成一样。

我知道 SQL Server 有一个 GO 类型的关键字。有没有办法告诉 cockroachdb 等待第一个命令?

【问题讨论】:

  • 我认为这不是 CockroachDB 中的批处理问题。尝试将以下内容多次复制粘贴到cockroach sql shell(或demo,如果您使用的是 19.2+):\| echo "DROP VIEW IF EXISTS vw_example; CREATE VIEW vw_example as SELECT count(1) from pg_settings;"。您确定 slick 正在按规定的顺序/从文件中执行这些语句吗?
  • @PeterVandivier - 我想是这样,但这都是 Flyway 迁移的一部分。我不确定是否有代码可以同时解析文件和运行语句 - 对我来说没有多大意义,但也许?当我使用 DataGrip 运行它们时,它们总是按预期工作。

标签: slick-2.0 cockroachdb


【解决方案1】:

根据link 中提到的问题,最好在不同的迁移文件中放置和创建脚本,因为 flyway 在单个事务中运行每个迁移。

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 2013-04-03
    • 2015-06-13
    • 1970-01-01
    • 2011-09-20
    • 2016-01-29
    • 2012-10-16
    • 2014-09-08
    • 2023-04-04
    相关资源
    最近更新 更多