处理数据库视图。允许为数据库视图创建迁移。使用django代码查看迁移。它们可以颠倒过来。自动检测模型视图定义中的更改。支持几乎所有选项作为常规makemigrations命令
django-db-views的Python项目详细描述
django数据库视图
如何安装?
pip install django-db-views
如何使用?
- 将
django_db_views
添加到INSTALLED_APPS
- 使用
makeviewmigrations
命令为视图模型创建迁移
如何在数据库中创建视图?
from django_db_views.db_view import DBView
class Balance(DBView):
virtual_card = models.ForeignKey(
VirtualCard, on_delete=models.DO_NOTHING, related_name='virtual_cards'
)
total_discount = models.DecimalField(max_digits=12, decimal_places=2)
total_returns = models.DecimalField(max_digits=12, decimal_places=2)
balance = models.DecimalField(max_digits=12, decimal_places=2)
view_definition = """
SELECT
row_number() over () as id, # Django requires column called id
virtual_card.id as virtual_card_id,
sum(...) as total_discount,
...
"""
class Meta:
managed = False
db_table = 'virtual_card_balance'
视图迁移是如何工作的?
- 它使用Django代码,视图迁移看起来像常规迁移
- 它依赖于
db_table
名称。 makeviewmigrations
命令查找视图的先前迁移。- 如果没有这样的迁移,那么脚本将创建一个新的迁移
如果存在以前的迁移,但在{{CD7}}中没有变化,则没有检测到
基于django 1.11.5的现场项目测试