有没有办法从谷歌云 sql 中使用 pg_cron?

Posted

技术标签:

【中文标题】有没有办法从谷歌云 sql 中使用 pg_cron?【英文标题】:Is there way to use pg_cron from the google cloud sql? 【发布时间】:2020-04-17 09:51:20 【问题描述】:

目前我需要将我的数据库从 postgreSql 移动到 google cloud sql。我使用 pg_cron 删除过时的记录,如下所示:

SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$);

我已阅读以下文章:https://cloud.google.com/sql/docs/postgres/extensions

并且没有找到任何与 pg_cron 相关的东西

我也读过Does Cloud SQL Postgres have any cron-like tool?,但它看起来像我的任务过度设计。

有没有更简单的方法?

【问题讨论】:

【参考方案1】:

很遗憾,Cloud SQL 不支持 pg_cron。为了能够运行这个扩展,你需要使用SUPERUSER。如帖子中所述,您发现 Cloud SQL 是一项完全托管的服务。这意味着虽然设置、维护、管理和管理数据库等操作很容易管理,但您没有SUPERUSER privilege。

关于这项改进有一个公开的Feature Request,但没有预计到达时间。

如果同一篇文章中给出的解决方法不适合您,您可以随时在此处创建Compute Engine VM instance and set up PostgreSQL。这将允许您完全管理您的数据库。

【讨论】:

很高兴能帮上忙。 请注意 pg_cron 不需要超级用户。托管服务只需要 GRANT USAGE ON SCHEMA cron 给主数据库用户。各种托管服务支持 pg_cron。【参考方案2】:

截至 2021 年 11 月,pg_cron 可用:

https://cloud.google.com/sql/docs/release-notes#November_19_2021

【讨论】:

以上是关于有没有办法从谷歌云 sql 中使用 pg_cron?的主要内容,如果未能解决你的问题,请参考以下文章

从谷歌云数据存储迁移到谷歌云 sql

从谷歌云存储桶中读取文件

无法在从谷歌云导出的 vmware 中启动 vmdk 文件

使用 python 将历史数据从谷歌云存储移动到日期分区的 bigquery 表

使用python从谷歌云存储桶中删除数据时出错

从谷歌云存储获取状态 503