【问题标题】:Postgresql get updated by sql script, get notification in backendPostgresql 通过 sql 脚本更新,在后端获取通知
【发布时间】:2019-11-26 20:45:41
【问题描述】:

我使用 django-rest-framework 作为后端,使用 postgresql 作为数据库。数据库可能会被原始 SQL 脚本更改,我希望在这些更改发生时在后端得到通知,以便通知不同的用户有关更改。

我已经查看了诸如 https://gist.github.com/pkese/2790749 之类的帖子,用于在 python 中接收通知以及一些用于

的 SQL 脚本
CREATE TRIGGER rec_notify_trig AFTER INSERT OR UPDATE OR DELETE ON rec
   FOR EACH ROW EXECUTE PROCEDURE rec_notify_func()

我的问题是我不知道如何在 django-rest-framework 中将它们连接在一起,例如我应该在哪里放置 SQL 脚本,在哪里放置 python 设置以便我可以将它们连接在一起。任何建议将不胜感激。

【问题讨论】:

    标签: django postgresql django-rest-framework


    【解决方案1】:

    我会在 djangorestframework 端创建一个端点来接受通知。

    然后,在您的 rec_notify_func() 中,您可以呼叫并点击您的端点,您可以在其中执行任何必要的最终用户通知。

    CREATE EXTENSION plpython3u; 
    CREATE FUNCTION rec_notify_func(notification_endpoint_uri text) RETURNS text AS $$
      from urllib.request import urlopen
      data = urlopen(notification_endpoint_uri)
      return data.read()
    $$ LANGUAGE plpython3u;
    

    注意: 您需要在系统上安装 plpython 才能启用扩展。

    在 ubuntu 上是这样的: sudo apt-get install postgresql-plpython3-9.6

    【讨论】:

      猜你喜欢
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2011-12-04
      相关资源
      最近更新 更多