2016-12-17 4 views
1

2つの問題がありました。まずDjangoはアプリ名の接頭辞でモデルクラスの名前を変換するためであった、と限りその部分が'Relation does not exist' error after transferring to PostgreSQLを解決したとして、私は違うquestion.Iがrelation "blog_userprofile" does not existようなエラーを得ていた作るために正しいかもしれないと仮定してPostgreSQL。 Models.pyはデータベーススキームに変換されません

select column_name, data_type, character_maximum_length 
from INFORMATION_SCHEMA.COLUMNS where table_name = 'closer'; 
で判明

closerのカラムがないので、python manage.py migrate,,python manage.py make appnamepython manage.py syncdbは基本的に正しく動作せず、models.pyをデータベーススキームに変換しませんでした。

なぜですか?これをどうすれば解決できますか?私はmodels.pyのすべてを削除して、すべてのコマンドを再度実行しようとしましたが、それでもdjango.db.utils.ProgrammingError: relation "blog_community" already existsのような存在しないフィールド(?)にエラーを出力します。 --fake initialflushresetを使用しようとしましたが、どちらも助けられませんでした。

+0

を行うことはモデルにPYを削除しないでください、あなたはクリアするために必要なものは、マイグレーション/フォルダの内容です。この問題の原因となっている完全なモデルを投稿できますか? – e4c5

答えて

0

あなたはmysqlからpostgresqlに移動しているので、あなたのpostgresql dbに必要なデータがないと想定するのは安全です。

現在のモデルは、おそらくpostgresqlに直接インポートすることができます。しかし、あなたがファイルに持っている移行ファイルがpostgresqlと互換性があるということではありません。

あなたのモデルが一定期間進化した可能性が非常に高く、古い移行ファイルにはpostgresqlと互換性がない可能性が非常に高いです。

手順1:プロジェクト内のすべてのアプリケーションを実行し、移行フォルダをクリアします。

ステップ2:(それは、任意のデータを持っていないと仮定して)PostgreSQLデータベースをドロップ

ステップ3:Djangoの内部テーブルの移行を作成するには、次のコマンドを行い

./manage.py makemigrations 

ステップ4:ドゥあなたのアプリごとに以下のコマンドを実行します。

./manage.py makemigrations my_app_name 

ステップ4:最後に、

./manage.py migrate. 
0

基本的には、既に作成されたモデルを作成しようとしています。コマンドはmanage.py makemigrationsを作成し、manage.py migrateは移行を実行します。彼らがすでに存在するならば、あなたは間違ったことをしたと思います。
dbを削除してみます。移行を削除します。 dbを作成し、移行を作成して実行します。

関連する問題