1

django コード用の git リポジトリがあります。Python バージョン 2.6 および django バージョン 1.4。今日、誤って自宅のコンピューターから python 2.7.3 で django アプリを起動しようとしたところ、奇妙なことが起こりました。データ テーブルからすべてのデータを失いました。バージョンの衝突が原因なのか、それとも他の何かなのかはわかりません。テーブルが空である理由を調べるにはどうすればよいですか? それはmysqlの問題でしょうか?これをデバッグするための最良の戦略は何ですか? データはそれほど重要ではありませんが、これが再び発生することは望ましくありません。

4

2 に答える 2

1

テーブルが空である理由を調べるにはどうすればよいですか? それはmysqlの問題でしょうか?これをデバッグするための最良の戦略は何ですか? データはそれほど重要ではありませんが、これが再び発生することは望ましくありません。

Django のインストールを完全にデバッグする以外に私が確認できる唯一の方法は、次のlog機能を使用して、MySQL をすべてのログに記録するように設定することmy.cnfです。

[mysqld]
log            = /var/log/mysql/queries.log

次にデータを復元し、ログが有効になるように MySQL を再起動し、Python 2.7.4 で再試行します。データは再び消えるはずですが、今度はログ ファイルでどのコマンドが発行されたかがわかります。

これらのコマンドを使用すると、それらが Django コードのどこにあるかを試すことができます。

完全な消失はモデル構造の再生成のように見えます。これは、何らかの形でシステムがデータがそこにあると認識しなかったことを意味します。これを引き起こす Python または Django の問題を認識していません。

フラッシュ/リセットコマンドを発行しただけではありませんか?

于 2012-09-17T21:53:08.760 に答える
0

私はあなたが何を意味するのか完全には理解していません

今日、自宅のコンピューターから誤ってPython 2.7.3でdjangoアプリを起動しようとしましたが、何か奇妙なことが起こりました。」

しかし、すでに実行されていることを知らなかったシステムでsyncdbを実行できた可能性はありますか?syncdbはデータを保持しません。

スキーマの変更を計画している場合は、移行にSouthを使用することを検討する必要があります。

于 2012-09-17T21:50:26.130 に答える