有没有办法从谷歌云 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?的主要内容,如果未能解决你的问题,请参考以下文章