Django Materialized Views
SkillDatabases & dataModel, migrate, refresh, and verify PostgreSQL materialized views in Django for expensive report or dashboard queries that can tolerate stale data. Use when ORM/index/query rewrites are not enough, the result is read often, freshness can be bounded, and a Django app needs unmanaged models, RunSQL migrations, refresh commands, or concurrent refresh.
Use Django Materialized Views in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Django Materialized Views and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Django Materialized Views skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by hashgraph-online/awesome-codex-plugins in plugins/LVTD-LLC/skills/skills/django-materialized-views/SKILL.md and read by Ahel’s review.
Use this skill when an expensive read query is reused often and can tolerate controlled staleness. Try query-plan, index, and ORM expression improvements first; materialized views add operational state.
Workflow
-
Confirm fit.
- The source query is expensive and stable.
- Consumers can accept stale data.
- Refresh cadence, ownership, and failure behavior are clear.
- PostgreSQL is the target database.
-
Design the materialized view.
- Define the SQL query and output columns.
- Add a unique column or unique column set if concurrent refresh is required.
- Add indexes for consumer queries against the view.
-
Integrate with Django.
- Create the view with
RunSQL. - Represent it as an unmanaged model with
managed = False. - Keep the unmanaged model fields aligned with the SQL output.
- Make writes impossible at the application boundary.
- Create the view with
-
Implement refresh.
- Use
REFRESH MATERIALIZED VIEWfor simple refreshes. - Use
REFRESH MATERIALIZED VIEW CONCURRENTLYonly when the view is already populated and has a qualifying unique index. - Schedule refresh through a management command, task queue, or database job.
- Use
See materialized-view-patterns.md for migration, model, and refresh templates.
Safety Notes
- A materialized view returns stored data; it is not automatically current.
- Concurrent refresh avoids locking out reads but has prerequisites and still allows only one refresh at a time per view.
- Refreshing a large view can be a major database workload. Measure it separately from reads.
Verification
Validate the SQL against source tables, test the unmanaged model reads, prove refresh behavior, and measure read latency before/after.
Signals
- GitHub stars
- 1k
- Forks
- 316
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
django-materialized-views- Source
- github.com/hashgraph-online/awesome-codex-plugins
github.com/hashgraph-online/awesome-codex-plugins
Related picks
Skill · hashgraph-online
The pick for Djangointegration-django
Skill · posthog
The pick for Djangosupabase-postgres-best-practices
Skill · baekenough
The pick for Postgresanalytics
Skill · coreyhaines31
More in Databases & datasupabase
Skill · supabase
More in Databases & dataconnect
Skill · composiohq
More in Databases & data