【问题标题】:Unable to delete heroku table through django shell无法通过 django shell 删除 heroku 表
【发布时间】:2012-06-08 22:35:56
【问题描述】:

我正在尝试删除托管在 heroku 中的表。因为它在共享数据库中,我无法直接连接到 postgres 执行语句。我通过 django shell 执行删除。问题是表名是大写的,由于未知原因,django 尝试以小写形式删除它:

>>> sql = '''drop table campings_horesEntrega cascade;    <---see uppercases
...          drop table campings_horesRecollida; '''
>>> 
>>> from django.db import connections, transaction
>>> cursor = connections['default'].cursor()
>>> cursor.execute(sql)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/util.py", line 40, in execute
    return self.cursor.execute(sql, params)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 52, in execute
    return self.cursor.execute(query, args)
DatabaseError: table "campings_horesentrega" does not exist   <--- see lowercases

有人可以解决我的问题吗?

非常感谢。

【问题讨论】:

    标签: django heroku


    【解决方案1】:

    如果您希望 postgres 尊重大小写,则需要将表名括在引号中。

    DROP TABLE "campings_horesEntrega" CASCADE;
    

    【讨论】:

    • 谢谢!我是postgres的新手。我知道:oracle -> ", sqlserver -> [, mysql -> `,现在 postgres = oracle -> "
    猜你喜欢
    • 1970-01-01
    • 2015-01-16
    • 2011-12-24
    • 2018-05-19
    • 1970-01-01
    • 2012-09-26
    • 2021-10-01
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多