2011-07-05 12 views
3

djangoでSentryアプリケーションを移行中にこのエラーが発生しました。私は、MySQLSOUTHとdjangoの移行でエラーが発生する

! 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. 

! You *might* be able to recover with: = DROP TABLE `sentry_groupedmessage` CASCADE; [] 
    = DROP TABLE `sentry_message` CASCADE; [] 

私は

+1

手順に従いますか? –

+0

だから、MySQLは彼が言ったことをサポートしていないことを意味する、MySQLは悪い私はDjangoで小さなプロジェクトのために使用することはできません –

答えて

2

あなたの問題は、移行が失敗したことがあり、南は表がでているどの状態ではわからないので、MySQLは、トランザクションのサポートを持っていない何をすべきを使用しています。

あなたはこの時点からそれを回復することができますどのように唯一の方法は次のとおりです。

  • テーブルを点検し、彼らは、移行のどの状態で確認してください(列がなどを変更した)
  • 両方のテーブルのバックアップ(ダンプアウト)
  • テーブルを削除します。
  • migrateコマンドを使用してテーブルを再作成します。
  • 移行は成功しませんでしたまだ、テーブルがあなたのダンプアウトデータ
  • のスキーマが再び
トーマスさんへの追加
0

あなたのダンプ

  • 移行をインポート一致した状態を行くために南を使用する場合回答;移行の再実行中にcontent_type_idキーのIntegrityErrorが取得されている場合は、アプリケーションのモデル専用に作成されたアクセス許可も削除してください。 、その場合

    IntegrityError: (1062, "Duplicate entry '209-view_<model name>' for key 'content_type_id'")

    テーブルauth_permissionからこれらの権限を削除する:エラーは、次のようになるであろう。モデル名をlikeで検索すると、すべての権限(表示、追加、変更、削除)を見つけることができます。

    Select * from auth_permission where codename like '%<model name>'

    上記のコマンドは、あなたのモデルのすべての許可を取得します、あなたは自分のIDを取得し、削除(または単に参加を書き込む)ことができます。

  • 関連する問題