[django自動データベース同期] Djangoはアプリの変更後にデータベースを同期します

Djangoはデータベーステーブルを削除して再同期します

2017年7月3日10:25:53

レーベル:

python /

ジャンゴ

1811

プロジェクトのニーズにより、Python言語Djangoに基づくバックエンドフレームワークが最近、Webアプリケーションの開発に使用されています。DjangoはPythonのシンプルさを継承しており、それを使用してWebアプリケーションを開発するのは簡単で更新されていると言う必要があります。以前のSSHフレームワークとは異なり、各フレームワークは個別に構成する必要があり、構成を通じてさまざまなフレームワークを組み立てる必要があります。DjangoはSSHを統合します3つのフレームワークの機能は、このフレームワークを構成するだけでよく、バックエンド開発プロセス全体を完了することができ、構成プロセスは簡単に習得できます。これにより、プログラマーの複雑さが大幅に軽減され、書き込みに集中できます。ツールの使用に巻き込まれない、優れたコードを生成します。

さらに騒ぎ立てることなく、私が遭遇した問題と解決策についてお話ししましょう。

DjangoがORM関数を提供していることは誰でも知っています。データベーステーブルを直接作成し、オペレーションコードのクラスを追加、削除、変更、チェックできます。ただし、開発プロセスでは、データベーステーブルの再設計により、元のテーブルを削除し、Django ORM関数を使用してテーブルを再同期する必要があります。

同期コマンドは次のとおりです。

[プレーン] viewplaincopy

python?manage.py?makemigrations

[プレーン] viewplaincopy

python?manage.py?migrate

しかし、コマンドを入力した後、エラーが発生しました:

プロンプトは、追加した新しいフィールドにはデフォルト値がないことを示しています(データベーステーブルに対する私の変更はフィールドを追加することです)。その後、Baiduに行って、stackoverflowで回答を見つけました。フィールドの後にデフォルト値を追加するだけです。しかし、明らかに、最初のコマンドがこの方法で正常に実行されたため、この答えは私が遭遇した問題の本当の原因を見つけられませんでしたが、2番目のコマンドが実行されたときにエラーが直接報告されました その後、私は再び百度に行きました。誰かが、フレームワークによって自動的に生成された初期ファイルを確認することを提案しました。このファイルは、現在のアプリの下のmigrationsディレクトリにあります。開いた後、ファイルの内容が元のテーブルに対応している、つまり更新されていないことがわかりました。問題はここにある可能性がありますあまりにも。したがって、私はこのファイルを削除し、提案どおりに再生成しました。

ファイルを削除した後、コマンドを再実行します。今回は、新しい初期ファイルが実際に生成されて内容が更新されましたが、2番目のコマンドの実行時に問題が残っていました。データベースを見ると、空であり、新しいテーブルは生成されていません。クラッシュ。

次に、関連する質問を見つけるためにもう一度百度に行き、別のコマンドを見ました。

[プレーン] viewplaincopy

python?manage.py?sqlmigrate?your_app_name?0001

your_app_nameを独自のアプリ名に置き換えて、フレームワークによって作成されたSQLステートメントを確認し、SQLステートメントを確認しました。データベースで直接sqlコマンドを実行して手動でテーブルを作成し、アプリケーションを起動したところ、正常に起動して問題が解決しました。

この方法は少し注意が必要ですが、問題の核心についての説明はないようですが、幸い、問題は非常に実用的に解決されています。

おすすめ

転載: www.cnblogs.com/sqlserver-mysql/p/12712871.html