Django Materialized Views

SkillDatabases & data

Model, 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.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Django Materialized ViewsStart free

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

  1. 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.
  2. 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.
  3. 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.
  4. Implement refresh.

    • Use REFRESH MATERIALIZED VIEW for simple refreshes.
    • Use REFRESH MATERIALIZED VIEW CONCURRENTLY only when the view is already populated and has a qualifying unique index.
    • Schedule refresh through a management command, task queue, or database job.

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