本地 Django 部署 Heroku的时候某个 / 某些数据库显示总是无法创建成功 relation “nnsh_backend_new_userinfo“ does not exist LINE

2023-11-16

情景

  • 假设你有一个项目 A

  • 你之前部署了项目 A,里面包含了两个数据库的表 table1 和 table2,他们都顺利部署

  • 然后你相加一些功能,于是又创建了一张表 table3

  • 于是再部署的时候发现 table3 即使执行了 makemigrations 和 migrate 命令也无法创建成功,但是在 django 的 admin 界面却能够看到 table3,就像下面这样:
    在这里插入图片描述

  • 这里的 userinfo 就是我说的 table3,在 admin 界面能看到,但是你就是无法操作

  • 报错的信息如下:

ProgrammingError at /admin/nnsh_backend_new/userinfo/
relation "nnsh_backend_new_userinfo" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "nnsh_backend_new_userinfo...
                                          ^
Request Method:	GET
Request URL:	http://nus-nnsh-backend-new-1fec143342b2.herokuapp.com/admin/nnsh_backend_new/userinfo/
Django Version:	4.0.1
Exception Type:	ProgrammingError
Exception Value:	
relation "nnsh_backend_new_userinfo" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "nnsh_backend_new_userinfo...
                                          ^
Exception Location:	/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/utils.py, line 85, in _execute
Python Executable:	/app/.heroku/python/bin/python
Python Version:	3.9.16
Python Path:	
['.',
 '/app/.heroku/python/bin',
 '/app',
 '/app/.heroku/python/lib/python39.zip',
 '/app/.heroku/python/lib/python3.9',
 '/app/.heroku/python/lib/python3.9/lib-dynload',
 '/app/.heroku/python/lib/python3.9/site-packages']
Server time:	Sun, 16 Jul 2023 09:51:46 +0000

原因

  • 有一些数据库的冲突发生了,这些冲突可能如下,但远不止下面的情况:

    • 你现在改完的版本中某个表多了一些字段,
    • 但是在你已有的信息中没有这些字段,这其实就会造成冲突,这样的数据迁移结果会失败
  • 一个最粗暴的方法,也是我采用的方法(因为我的数据还在测试阶段,所以不重要),就是直接删除 Heroku 上的项目数据库,然后重新 makemigrations 和 migrate

操作

在你的本地terminal:

  • 登录 heroku 远程的账号:

    heroku login
    
  • 重置项目数据库:

    heroku pg:reset DATABASE_URL --confirm YOUR_APP_NAME
    
    • 如果你的项目只有一个数据库,那么这里的 DATABASE_URL 就保持不变即可,如果有多个数据库,你需要在这里确切地指定 DATABASE_URL 是什么
    • YOUR_APP_NAME 一定要换成自己的 Heroku 项目名称
  • 接下来 手动 或者在 Procfile 中设置 迁移操作:

手动

heroku run python manage.py makemigrations YOUR_PROJECT_NAME
heroku run python manage.py migrate 
  • 这里的 YOUR_PROJECT_NAME 注意不是上面的 YOUR_APP_NAME;这个是你本地项目文件夹的名称

自动

  • 在 Procfile 文件中的第一行写入
release: python manage.py makemigrations YOUR_PROJECT_NAME && python manage.py migrate 
  • 然后重新 git push 你的 heroku 项目,就会完成迁移的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

本地 Django 部署 Heroku的时候某个 / 某些数据库显示总是无法创建成功 relation “nnsh_backend_new_userinfo“ does not exist LINE 的相关文章

随机推荐

  • synchronized 与 Lock 的异同

    最近在做一个监控系统 该系统主要包括对数据实时分析和存储两个部分 由于并发量比较高 所以不可避免的使用到了一些并发的知识 为了实现这些要求 后台使用一个队列作为缓存 对于请求只管往缓存里写数据 同时启动一个线程监听该队列 检测到数据 立即请
  • linux下安装和使用mongo

    1 下载和安装 1 1版本匹配 Linux下运行 uname a 查看Linux系统的版本 root VM 0 7 centos bin uname a Linux VM 0 7 centos 3 10 0 514 26 2 el7 x86
  • 【其它】关于size_t与int之间的比较

    void SeqListInsertByPos SeqList pList size t pos DateType x assert pList NULL pos lt pList gt size if IsFull pList print
  • 华为OD机试真题-预定酒店【2023.Q1】

    题目描述 放暑假了 小明决定到某旅游景点游玩 他在网上搜索到了各种价位的酒店 长度为n的 数组A 他的心理价位是x元 请帮他筛选出k个最接近x元的酒店 n gt k gt 0 并由低到高打印酒店的价格 输入描述 第一行 n k x 第二行
  • Java操作MongoDB采用MongoRepository仓库进行条件查询

    1 实体类 public class Person implements Serializable private static final long serialVersionUID 8288372263395673353L privat
  • ResNet50及其Keras实现

    如果原理你已经了解 请直接到跳转ResNet50实现 卷积神经网络 第三周作业 Residual Networks v1 你或许看过这篇访问量过12万的博客ResNet解析 但该博客的第一小节ResNet和吴恩达的叙述完全不同 因此博主对这
  • 如何参与Linux内核开发

    如何参与Linux内核开发 这是一篇将如何参与Linux内核开发的相关问题一网打尽的终极秘笈 它将指导你 成为一名Linux内核开发者 并且学会如何同Linux内核开发社区合作 它尽可能不包括任何关于内核编程的技术细节 但会给你指引一条获得
  • 一文搞懂ChatGPT 和 AIGC 到底是什么?【最强科普】

    目录 1 AIGC是什么 2 ChatGPT是什么 3 ChatGPT发展的几个阶段 4 ChatGPT能做什么 5 ChatGPT的应用场景 一 AIGC是什么 GC Generated Content 内容生成 PGC Professi
  • LeetCode 18. 四数之和 4Sum(C语言)

    题目描述 给定一个包含 n 个整数的数组 nums 和一个目标值 target 判断 nums 中是否存在四个元素 a b c 和 d 使得 a b c d 的值与 target 相等 找出所有满足条件且不重复的四元组 注意 答案中不可以包
  • 处理糊涂工具包 和easyexcle jar报poi冲突问题

    项目中使用的糊涂工具包是高版本的 使用的easyexcle 是2 x版本 导致出现问题 同时引用hutool和easyExcel会导致其中一者功能不可用 因为poi版本不兼容 easyExcel依赖了poi 3 17版本 Hutool文档说
  • 计算机算法基础总结(借鉴、整理)

    作者 Jerry4me 链接 https www jianshu com p f6e35db6bc51 排序算法 算法 最优复杂度 最差复杂度 平均复杂度 稳定性 选择排序 O n O n O n 不稳定 冒泡排序 O n O n O n
  • Spring原理-IoC容器初始化过程

    IoC容器初始化过程 IoC容器的两个核心接口BeanFactory和ApplicationContext大概功能都讲解了一些 接下来我们讲解一下IoC容器的初始化过程 让大家有一个深一点的理解 讲解还是以FileSystemXmlAppl
  • 卷积神经网络CNN在自然语言处理中的应用

    卷积神经网络 Convolution Neural Network CNN 在数字图像处理领域取得了巨大的成功 从而掀起了深度学习在自然语言处理领域 Natural Language Processing NLP 的狂潮 2015年以来 有
  • 【vulnhub靶机】DC-3

    原知识星球老文搬运 拿到靶机之后导入到virtualBOX里面 1 nmap扫描主机存活 192 168 56 104 有个80端口 不放心的话可以用masscan 2 直接访问看下 这里提示只有一个flag 直接拿到root权限 3 习惯
  • uniapp开发的h5网页如何去掉网址里的#号

    在manifest json里配置history模式 这里特别注意下面的 运行的基础路径 里不要写 因为这个默认会强制hash模式 如图 然后再服务器端配置下规则 history模式下配置nginx location try files u
  • GPL和MIT开源协议

    GPL GNU通用公共许可证简称为GPL 是由发行的用于计算机软件的协议证书 使用该证书的软件被称为自由软件 大多数的GNU程序和超过半数的自由软件使用它 GPL的出发点是代码的开源 免费使用和引用 修改 衍生代码的开源 免费使用 但不允许
  • char码值对应列表大全

    Char 0 为0的字符 Char 1 Char 2 Char 3 Char 4 Char 5 Char 6 Char 7 响铃 Char 8 回格 Char 9 tab 水平制表符 Char 10 换行 Char 11 tab 垂直制表符
  • Dump文件的生成以及使用WinDbg静态分析

    前言 本文章主要介绍了如何生成Dump文件 包括两种方式 通过代码生成和通过注册表生成 并且介绍了WinDbg工具的下载和使用 以及如何使用WinDbg工具去静态分析Dump文件 从而找到程序的崩溃位置 生成Dump文件 通过调用WinAP
  • cas 编译安装依赖时提示: Failure to find net.shibboleth.tool:xmlsectool:jar:2.0.0

    错误信息 Could not resolve dependencies for project org apereo cas cas overlay war 1 0 Failure to find net shibboleth tool x
  • 本地 Django 部署 Heroku的时候某个 / 某些数据库显示总是无法创建成功 relation “nnsh_backend_new_userinfo“ does not exist LINE

    文章目录 情景 原因 操作 手动 自动 情景 假设你有一个项目 A 你之前部署了项目 A 里面包含了两个数据库的表 table1 和 table2 他们都顺利部署 然后你相加一些功能 于是又创建了一张表 table3 于是再部署的时候发现