Datagrip:创建postgres索引而不等待执行

Posted

技术标签:

【中文标题】Datagrip:创建postgres索引而不等待执行【英文标题】:Datagrip: Create postgres index without waiting for execution 【发布时间】:2020-06-27 20:34:00 【问题描述】:

有没有办法在不保持连接打开/异步的情况下将 datagrip 中的命令提交到数据库?我正在尝试同时创建索引,但我也想关闭我的笔记本电脑。

我的数据抓取工作流程: 选择数据库中的列,点击“修改列”,最终运行代码如:

create index concurrently batchdisbursements_updated_index
    on de_testing.batchdisbursements (updated);

但是,这些作为后台任务运行,如果我退出 datagrip,则会取消。

【问题讨论】:

也许一个可行的解决方案是改变您关闭笔记本电脑时的功能。更改设置以简单地忽略它现在已关闭的事实。由于您没有指定您的操作系统,请参阅Windows 和Linux(Ubuntu 18.04LTS)(其他 Linux 发行版应该具有类似的功能) 原来是并发创建或者同步创建,几秒后可以取消命令,命令已经提交到服务器了。 【参考方案1】:

但是,这些作为后台任务运行,如果我退出 datagrip,则会取消。

如果您在不退出 datagrip 的情况下关闭笔记本电脑会怎样?当您退出时,Datagrip 可能正在主动向 PostgreSQL 发送取消消息。如果您只是关闭笔记本电脑,我怀疑它会这样做。在这种情况下,PostgreSQL 在尝试发送消息之前不会注意到客户端已经离开,此时索引创建应该已经完成​​并提交。

但这是一个脆弱的计划。我会 ssh 到服务器,运行 screen(或更高级的变体之一),在其中运行 psql,然后从那里创建索引。

【讨论】:

以上是关于Datagrip:创建postgres索引而不等待执行的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 DataGrip 将 Postgres 数据库模式置于源代码控制之下?

Datagrip,创建自定义模板

DataGrip!使用教程

在 psql shell 中所做的更改不会显示在 Datagrip 会话中

datagrip运行建表语句后需要commit吗

Datagrip 中的“脚本到...”选项?