2016-11-23 14 views
-1

私はdjangoに2つの異なるデータベースを持っています。最初は、セカンダリデータベースにcdrというテーブルがありました。私は2番目のデータベースを取り除き、最初のデータベースにcdrテーブルを追加することにしました。Djangoはテーブルを作成しません

設定ファイルのセカンダリデータベースと私のアプリケーション全体で参照を削除しました。私はすべての移行ファイルを削除し、make migrateを新しく実行しました。

私のpostgresデータベースに存在しないにもかかわらず、マイグレーションを実行すると、以前は使用されていたテーブルが作成されませんでした。

私は、モデル定義に再び追加するときにmakemigrations関数がテーブルのマイグレーションファイルを作成する理由を理解できず、マイグレーションファイルにあることを確認しました。移行を実行すると、適用される移行がないことがわかります。

なぜそうですか?私はマネージド=真であることを確認しました。私は、最初のデータベースにログインして\ dtを実行することで、モデルが自分のpostgresデータベースにないことを確認しました。

Djangoはまだ、移行ファイルにcreateコマンドを表示しても、移行する必要がないと言うこのテーブルがまだ存在していると考えているのはなぜですか?私はセカンダリデータベースを削除して、何らかの形で参照されていないことを確認しました。

私はこれを私に説明する必要はないと思われますが、必要に応じて投稿します。私はここで簡単なものを紛失していると思います。

答えて

2

はなぜDjangoはまだこのデータベースは、まだDjangoがテーブルを維持しているので

ファイルの移行に コマンドを作成示していても適用することが私に何の移行を語っていない ような存在だと思うんデータベースにdjango_migrationsという名前が付けられています。このディレクトリには、適用されたすべての移行がリストされています。あなたはほとんど新しく始めているので、このテーブルをクリアしてから移行を実行してください。

これがまだ動作していないにもかかわらず、あなたがまだ新鮮な状態にあることを前提としている場合は、すべてのテーブル(またはデータベース)を削除して再度移行してください。保存したいデータがある場合は、移行するには--fakeと--fake-initialオプションを参照する必要があります

+0

ありがとうございます。私はこのテーブルをきれいにしようとすると、私は新しい問題に巻き込まれます。許可テーブルの問題としてコンテンツタイプが発生します。私はそれらのテーブルから関連するレコードを消去してから、テーブルにカラムがすでに存在しているとか、テーブルにカラムが存在しないというエラーが出ます。ありがたいことに、これはすべてテストサーバー上で行われますが、ライブサーバーでこの問題を解決するためのより良い戦略はありますか? –

+0

なぜ私は私の質問のために否定的なものを持っているのか教えてください。私はスタックの答えを研究した、私はドキュメントを読んで、私は数時間のために私自身の解決を試みた。同様に、私はできるだけ徹底的に説明した。私はより良くしたい、私のポストの問題を助言してください。 –

+0

更新を参照してください – e4c5

関連する問題