###前提・実現したいこと
お分かりの方、ご回答いただけますと大変助かりますm(_ _)m
Djangoプロジェクトのローカル環境において、データベースをファイルごと更新(データベースdb.sqlite3を一旦消去後に、再度マイグレーションを実施し、新たなdb.sqlite3を生成し、既存のマイグレーションファイルに沿ったマイグレーション)を成功させたいという目標です。
(理由:デプロイ時にローカルで使っているデータベースを使えない状況のため、マイグレーションを0からやり直す必要があるためです)
これがうまくいかないんです・・・下記エラーの対策お分かりのかたいらっしゃいますでしょうか??どなたかお力添えくださると大変助かります・・・
###初期状態・できていること
環境など
・MacOSX
・Django1.10
・python 3.5.2
・sqlite3
・models.pyには 10個くらいのモデルがあります。(仮にモデルA、B、C・・・・などと起きます。ForeignKeyやmany to many fields で相互連携しているクラスも複数あります admin, auth, contenttypes, sessionsはDjangoの初期設定からあるクラスだと思われます。)
・ローカルでmodels.pyでクラスを追加するごとにちょっとずつmakemigrations→migrateをしてきたローカルのsqliteでは問題なくデータベースのマイグレーションが成功しています。
###発生している問題・エラーメッセージ
・ローカルで既存のマイグレーションに成功していたデータベースdb.sqlite3を一旦消去後(パス外に移動)に、再度マイグレーションを実施したところエラーが発生し、うまくマイグレーションファイルの通りにマイグレーションをしてくれません。以下エラーメッセージです。
$python manage.py makemigrations django.db.utils.OperationalError: no such table: <app名>_<model名>
###手がかりになりそうなこと
いくつかあります すべてdb.sqlite3を消した状態での実行です。
(挙動1)$python manage.py migrateをいきなりやってみる(意味ないと思いますが。。。)、$python manage.py runserverでも上記と同じエラーです。
$python manage.py migrate django.db.utils.OperationalError: no such table: <app名>_<model名>
$python manage.py runserver django.db.utils.OperationalError: no such table: <app名>_<model名>
(挙動2)変だなぁと思っているのはデータベースを一度消しているのに<app名>_<model名>とまだ未作成のテーブルを探そうとしているのです・・・この辺がなにかヒントになっているような気がするのですが・・・よくわかりません。
(挙動3)ヒントになるかわかりませんが、マイグレーションに成功していたデータベースdb.sqlite3を元の場所に戻すときちんと読み込めます。
###試したこと
検索で調べて出てきたアドバイスはかなり実施してみたのですがうまく行きません。
1:pycacheを全部消して、$python manage.py migrate
2:$python manage.py migrate --run-syncdb
3:$python migrate admin
エラーに出ていないモデルを指定してマイグレーションでも同じエラーメッセージがでます
どなたかお力添えくださると大変助かります・・・
###追記
エラーがでてくるモデルをsettingsのappとurls.pyからコメントアウトして、除外したところ、adminやsessionなどの基本機能のマイグレーションには成功しました。エラーがでていたモデルを含むappをコメントアウトを外してさらにmakemigrationsするとやはり同じエラーに戻ります、ForeignKeyが邪魔しているのでしょうか・・・
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/16 12:02