Documentation for `PostgresViewModel`
abmohan opened this issue · 2 comments
Would love to see an example for PostgresViewModel
.
I've tried reading through the code to figure out how to use it, but am unclear on the implementation.
E.g., something like what they have in https://github.com/xelixdev/django-pgviews would be great
This is not documented because nobody has confirmed it's stable and I am personally not using these features right now so I can't guarantee their stability. There is also some missing functionality, such as the ability to change the backing query on a view.
The basics:
from psqlextra.models import PostgresModel, PostgresViewModel
class SomeModel(PostgresModel):
name = models.TextField()
class MyView(PostgresViewModel):
class ViewMeta:
# alternatively, you can specify raw SQL here:
# query = ("SELECT ...", (param1, param2))
query = SomeOtherModel.objects.filter(name="test")
# all fields returned by `query` must be specified as fields
name = models.TextField()
from psqlextra.models import PostgresMaterializedViewModel
class MyMaterializedView(PostgresMaterializedViewModel):
class ViewMeta:
query = SomeOtherModel.objects.filter(name="test")
# all fields returned by `query` must be specified as fields
name = models.TextField()
MyMaterializedView.refresh(concurrently=True)
Use python manage.py pgmakemigrations
to automatically create the views in your database. Changing the query is unfortunately not supported in the migrations right now, you'll have to do that manually.
Thanks @Photonios. This is helpful. I've removed it from my project for now. Once I have some breathing room (hopefully in a few months), I'd be happy to add it back in and help with testing, documentation, and migrations at that point.