← Back to context

Comment by sgt

2 months ago

Also don't underestimate setting up e.g. views or materialized views even that you can use through the ORM to query. It helps a lot and allows you to combine fine tuning SQL with ease of use through Django, and get a lot of performance out of it. Just remember to create them in the migration scripts.

Any docs? Django migration is a HUUGE pain point for us.

  •   manage.py makemigrations myapp --empty --name add_some_view
    

    (in the migration file)

      operations=[migrations.RunSQL("Create View some_view AS ....", "DROP VIEW IF EXISTS...."]
    

    (in your models.py)

      class SomeView(models.Model):
           class Meta:
               db_table = 'some_view'
               managed = False
    
      manage.py makemigrations myapp --name add_some_view_model

    • An extremely common thing to do. Also great with materialized views. I bet it's documented somewhere in Django's docs.