0

Heroku の Postgres データベースにテーブルをドロップしたいと考えていました。しかし、私はまだ南に頭を抱えていないので、関数を書くことにしました:

def dropTable(request):
    cursor = connection.cursor()
    cursor.execute("DROP TABLE books_request CASCADE;")
    success = simplejson.dumps({"success":"success",})
    return HttpResponse(success, mimetype="application/json")

だから今、私books_request tableは落とされました。

次に、Heroku でアプリの bash に入りpython manage.py syncdb、テーブルが新たに再作成されることを望んでいましたが、そうではないようでした。なんで?

そのアプリだけを強制的に同期する方法はありますか?

また、同期中に問題の一部である可能性がある次のエラー メッセージも表示されました。

Problem installing fixture '/app/bookstore/fixtures/initial_data.json': Traceback (most recent call last):
DatabaseError: Could not load sites.Site(pk=1): value too long for type character varying(50)

アップデート:

問題は、データをダンプしてもテーブルが表示されるため、そもそもテーブルがドロップされていないことだと思います。テーブルを適切にドロップしないのはなぜですか?

4

2 に答える 2

1

south を使用している場合は、migrate コマンドを実行する必要がある場合があります。さらに、移行が既に適用されていると見なされた場合、再実行されません。以下を実行してから、出力を追加してみてください。

heroku run python manage.py migrate
于 2013-02-26T23:56:06.327 に答える
0

ええ、あなたはおそらくテーブルを落としませんでした。

最初に次の方法で接続を正しく参照していることを確認してください。

from django db import connection

django デバッグ ツールバーを使用して、実行された SQL と何が起こったかを確認します。または、heroku シェルで pudb などのデバッグ プログラムを使用して、何が起こっているかを確認してください。

于 2014-08-06T00:17:00.750 に答える