3

herokuでホストされているテーブルを削除しようとしています。共有データベースにあるため、postgresに直接接続して文を実行することはできません。djangoシェルを介してdeleteを実行します。問題は、テーブル名が大文字であり、理由がわからないため、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 に答える