跳转到主要内容

Django postgres refresh materialized views

项目描述

安装

$ [sudo] pip install django-postgres-refresh-matviews

工作原理

  1. refresh_pg_matviews - 刷新所有 pg_matviews 物化视图
  2. refresh_pending_matviews - 刷新 Matview 模型物化视图
    • repeat_seconds - 刷新物化视图的秒间隔
    • is_pending - 设置为 True 以强制刷新
settings.py
INSTALLED_APPS+=['django_postgres_refresh_matviews']
migrate
$ python manage.py migrate

示例

from django_postgres_refresh_matviews.utils import refresh_pg_matviews

refresh_pg_matviews()
from django_postgres_refresh_matviews.models import Matview
from django_postgres_refresh_matviews.utils import refresh_pending_matviews

Matview.objects.get_or_create(schemaname='public',matviewname='matview1')

refresh_pending_matviews()

Matview.objects.filter(schemaname='public').update(is_pending=False)

日志

from django_postgres_refresh_matviews.models import Log

for l in Log.objects.filter(schemaname='public',matviewname='matview1'):
    l.started_at, l.completed_at

命令行界面

$ python manage.py clear_matviews   # clear matviews
$ python manage.py init_matviews    # init postgres matviews
$ python manage.py refresh_pg_matviews # refresh pg_matviews
$ python manage.py refresh_pending_matviews # refresh pending Matview matviews

原始SQL

INSERT INTO refresh_matview(schemaname,matviewname)
SELECT schemaname,matviewname
FROM pg_matviews
ON CONFLICT (schemaname,matviewname) DO NOTHING;

UPDATE refresh_matview SET is_pending=true
WHERE schemaname='public' AND matviewname='matview1';

readme42.com

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

django-postgres-refresh-matviews-2020.12.5.tar.gz (3.6 kB 查看哈希值)

上传时间:

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面