问题解决:django模型查询报错,找不到数据库表

django项目,使用的postgresql数据库,建了多个模式,模型查询时一直默认查public的表

1. 问题

django.db.utils.ProgrammingError: relation "ip_management_app.table" does not exist

2. 代码:

python 复制代码
class IpTag(models.Model):
    id = models.AutoField(primary_key=True)
    update_time = models.BigIntegerField()
    user_id = models.IntegerField()
    tab_type = models.IntegerField(default=1)
    tag = models.CharField(max_length=150)
    prefix_id = models.IntegerField()

    class Meta:
        managed = False
        db_table = 'ip_tag'


IpTag.objects.all()

3. 解决方案

(1)使用的django2.0,settings文件中修改数据库配置,增加OPTIONS

python 复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '5432',
        'OPTIONS': {
            'options': '-c search_path=ip_management_app,public'
        }
    }
}

(2)其他方案

python 复制代码
class IpTag(models.Model):
    id = models.AutoField(primary_key=True)
    update_time = models.BigIntegerField()
    user_id = models.IntegerField()
    tab_type = models.IntegerField(default=1)
    tag = models.CharField(max_length=150)
    prefix_id = models.IntegerField()

    class Meta:
        managed = False
        db_table = 'ip_management_app.ip_tag'


IpTag.objects.all()

修改db_table,有这样的解决方案,但是对我没有效果,不知是否django版本问题,有问题的可以都试下,第一种解决了我的问题

相关推荐
REDcker5 分钟前
HDR Vivid 技术介绍
数据库·算法·视频·sdr·屏幕·显示技术·dhr
小雨中_6 分钟前
2.4 贝尔曼方程与蒙特卡洛方法
人工智能·python·深度学习·机器学习·自然语言处理
冰暮流星11 分钟前
sql语句之union语句
数据库·sql
2401_8763819217 分钟前
程序人生-Hello’s P2P
数据库·程序人生·p2p
VX:Fegn089526 分钟前
计算机毕业设计|基于springboot + vue养老院管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
湘-枫叶情缘1 小时前
从数据库写作到情绪工程:网络文学工程化转向的理论综述
数据库·人工智能
MediaTea1 小时前
Python:可迭代对象(对象语义角色)
开发语言·python
heimeiyingwang1 小时前
企业非结构化数据的 AI 处理与价值挖掘
大数据·数据库·人工智能·机器学习·架构
山岚的运维笔记1 小时前
SQL Server笔记 -- 第63章:事务隔离级别
数据库·笔记·sql·microsoft·oracle·sqlserver
白太岁1 小时前
Redis:(4) 缓存穿透、布隆过滤器与多级缓存
数据库·redis·缓存