django - 数据库具有自定义视图时的 Django 迁移错误
问题描述
姜戈 3.1。
应用文件夹: stocks
里面有设置的项目文件夹: main
我有这个模型:
class Bar(models.Model):
stock = models.CharField(max_length=10)
timestamp = models.DateTimeField()
date = models.DateField()
time = models.TimeField()
open = models.DecimalField(max_digits=6, decimal_places=2)
high = models.DecimalField(max_digits=6, decimal_places=2)
low = models.DecimalField(max_digits=6, decimal_places=2)
close = models.DecimalField(max_digits=6, decimal_places=2)
is_regular = models.BooleanField()
change = models.DecimalField(max_digits=10, decimal_places=4)
在 SQLite 数据库中,我daily_bottoms
使用 SQliteStudio 从该模型创建了视图。
现在我正在尝试迁移,因为添加了另一个字段。makemigrations
工作正常,但尝试迁移时出现错误:
django.db.utils.OperationalError: error in view daily_bottoms: no such table: main.stocks_bar
如果我删除视图,那么它将迁移,但我想每次都避免这种情况。
如何让它发挥作用?
解决方案
如果您的表不是由 Django 管理的,您应该设置
class Meta:
managed = False
在您的模型上记录
如果为 False,则不会对该模型执行数据库表的创建、修改或删除操作。如果模型表示现有表或已通过其他方式创建的数据库视图,这将很有用
推荐阅读
- linux - 将窗口名称添加到屏幕截图 - 在快捷键中执行 bash 命令
- erp - 实时普及数据库缺失数据的复制和备份
- android - 如何在 android 中关闭或释放 AWSAppSyncClient
- discord.js - 嵌入消息循环不会停止
- powershell - 如何以标题启动powershell并同时执行命令
- multidimensional-array - 在 octave 上矢量化多维数组填充
- java - 我应该在哪里放置事件监听器?
- json - JSON 中的 XML 序列化,无需过度转义
- ios - 我需要在 iOS 应用程序中使用 Allflex RFID Reader 读取 RFID 标签数据。我应该在 iOS 中使用什么或如何使用 CoreBluetooth 阅读这个
- oracle - 如何更改“实时数据库”?