3

我正在尝试删除在 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

有人对我的问题有解决方法吗?

多谢。

4

1 回答 1

3

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

DROP TABLE "campings_horesEntrega" CASCADE;
于 2012-06-09T00:07:55.927 回答