Django postgres refresh materialized views
项目描述
安装
$ [sudo] pip install django-postgres-refresh-matviews
工作原理
refresh_pg_matviews
- 刷新所有pg_matviews
物化视图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';
项目详情
关闭
django-postgres-refresh-matviews-2020.12.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 05ae2967884501d128516cb5e8bca550b55bf44c453ebfd521fa2dccf3f33e4b |
|
MD5 | ab0a4c3b9d49ed9306c54effd0019503 |
|
BLAKE2b-256 | 628a860b2df9ab1445e80b4bfeb52b43be5f25dbab9b4a7bc5b400488e42180d |