关系"table name"在 Heroku 上运行时不存在错误 PostgreSQL 表加载


*After deploying my django model in heroku and migrations,  

我无法通过批处理运行将数据加载到postgres表中
*

例如:

heroku run python ProddbUpload.py  

我对以下错误感到失望

运行python ProddbUpload.py

on ⬢ spellbeeword... up, run.9508 (Free)
relation "spellbeeword_tb" does not exist 

已使用pg:psql验证表名Spellbeeword_tb是否存在于heroku环境中的Postgres数据库中我的代码上传数据到上面提到的表

import os
import psycopg2
def writedb(conn):
cur = conn.cursor()
try:
with  open("spellbee/docs/Spell_Bee_Word_db.csv", 'r') as f:
cur.copy_from(f,'Spellbeeword_tb',sep=',')
# commit changes
conn.commit()

except Exception as error:
print(error)
finally:
if conn:
conn.close()
f.close()
def main():
DATABASE_URL = os.environ['DATABASE_URL']
try:
conn = psycopg2.connect(DATABASE_URL, sslmode='require')
writedb(conn)
except(Exception, psycopg2.DatabaseError) as error:
print(error)
finally:
if conn:
conn.close()
if __name__ == "__main__" :
main()

在pg:psql查询中,它显示我的表的数据库连接为-->连接到postgresql-flat-40316
但在heroku环境变量中,它显示为
===spellbeeword Config Vars

数据库URL:postgres://mlsudzmqspljyc:c2e68f055e685aa45dde87@ec2-18-206-20-102.compute-amazonaws.com:默认情况下,会进行上述配置。

我不知道如何连接postgresql-flat-40316/Spellbeeword_tb

当我用下面的代码检查时,没有打印出

cur.execute('SELECT version(('(

显示PostgreSQL数据库服务器版本

db_version=当前fetchone((打印(db_version(

Pls help me to import my data into table created by django model in heroku.  


我认为,在heroku运行中,它没有确定要连接的正确数据库
我遵循了heroku postgresl django部署文档,其中
DATABASE_URL由dj数据库URL安装配置
https://devcenter.heroku.com/articles/heroku-postgresql#connecting-在python中
我通过heroku运行python<dbupload文件名.py>
需求和设置.py在单独运行之前被推送到heroku#设置DATABASE urlDATABASES={默认值:dj_database_url.config((}

查看我当前的pg状态
=== DATABASE_URL
Plan:                  Hobby-dev
Status:                Available
Connections:           0/20
PG Version:            13.2
Created:               2021-04-06 10:54 UTC
Data Size:             9.0 MB
Tables:                13
Rows:                  68/10000 (In compliance)
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-flat-40316

table row: ('d7uobuibp87kvk', 'public', 'Spellbeeword_tb', 'BASE TABLE', None, None, None, None, None, 'YES', 'NO', None)在数据库中,我的目标表存在,但它显示

relation "spellbeeword_tb" does not exist
LINE 1: SELECT * FROM Spellbeeword_tb;
^

有人能建议如何在代码中拼写表名以识别吗

现在我发现它对于表名中的混合大小写是区分大小写的。因此,我在";双引号,则它可以识别表

`cur.execute('SELECT * FROM "Spellbeeword_tb";')`

并且对于上面的sql语句和获取表没有抛出错误。。。。但由于以下代码,关系仍然不存在

cur.copy_from(f,"Spellbeeword_tb",sep=',')

关系";spellbeeword_tb";不存在

最终确定的Postgres数据库区分大小写。正如Camel案例中定义的表,它无法识别表名关系(尽管表用引号(两者都是"/"(因此,我将表名修改为小写。现在它可以识别表了。

最新更新