1

私は既存のアプリで南を使い始めたばかりで、新しいモデルをデータベースに追加した後、管理者でモデルを表示できますが、それらをクリックしてモデルの詳細を表示するとエラーが発生します

私はsyncdbの南に相当することをしようとします:

python manage.py schemamigration directory --initial

python manage.py migrate directory

directory はアプリ名です。

したがって、管理者でモデルを表示しようとすると、次のようになります。

Exception Type: DatabaseError

Exception Value: (1146, "Table 'omada.directory_drift' doesn't exist")

ここで、Drift は models.py に追加したモデルで、admin.py に登録されています。omada はサイト名です。

さらに詳しい情報:

django サイトからのトレースバックは次で終了します。

File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py" in execute


  114.             return self.cursor.execute(query, args) File "/usr/local/lib/python2.7/dist-packages/MySQL_python-1.2.4b5-py2.7-linux-i686.egg/MySQLdb/cursors.py" in execute
  201.             self.errorhandler(self, exc, value) File "/usr/local/lib/python2.7/dist-packages/MySQL_python-1.2.4b5-py2.7-linux-i686.egg/MySQLdb/connections.py" in defaulterrorhandler
  36.     raise errorclass, errorvalue

実行時

python manage.py migrate directory

次で始まるエラーが表示されます。

FATAL ERROR - The following SQL query failed: CREATE TABLE `directory_building`
 ! Since you have a database that does not support running
 ! schema-altering statements in transactions, we have had
 ! to leave it in an interim state between migrations.

これはあまり有望に聞こえません:S、そして次で終わります:

  File "/usr/local/lib/python2.7/dist-packages/MySQL_python-1.2.4b5-py2.7-linux-i686.egg/MySQLdb/connections.py", line 36, in defaulterrorhandler                
    raise errorclass, errorvalue
django.db.utils.DatabaseError: (1050, "Table 'directory_building' already exists")

これを読んで助けを提供するために時間を割いてくれるすべての人に前もって感謝します!

4

1 に答える 1

1

このガイドは役に立つかもしれません。

あなたは南から始めているだけなので、最初からやり直すことをお勧めします。

  1. データベースから南テーブル (south_migrationhistory) を削除します

  2. app.migrations フォルダーから移行を削除します。

  3. ガイドに従う

サウスを悪い状態にするのは非常に簡単なので、経験を積む必要があります。ただし、プロジェクトのサイズが大きくなるにつれて、これなしでは生きられません。

于 2012-11-30T11:34:02.757 に答える