Djangoを使用してWebサイトを構築していますが、User
モデルにGPS座標属性が必要です。
PostgreSQLを必要とするGeoDjangoを使用します。私のウェブサイトは、すでにsqlite3デフォルトデータベースを使用しているため、プロジェクトにPostgreSQLデータベースをインストールして、Coordinates
モデルを作成しUser
、SQLiteのモデルにリンクする必要があります。データベース。
インターネット上で「複数のデータベースの使い方」に関するチュートリアルをたくさん見つけましたが、それらはすべて非常に基本的なものです。私はDjangoとWebプログラミングにまったく慣れていないので、複数のデータベースに関する詳細なチュートリアルが必要です。いくつか質問がありますが、1つ以上お答えいただければ幸いです。
注:WindowsのubuntuアプリとともにPostgreSQLがインストールされたWindows10を使用しています。
1)Djangoプロジェクトで新しいデータベースのファイルを作成して初期化するにはどうすればよいですか?ファイルdb.sqlite3はDjangoプロジェクトの初期化で自動的に作成されたので、どうすれば別のファイルを作成できますか?
2)GPS座標に新しいアプリを使用する必要がありますか、それとも既存のアプリを使用できますか?
3)OneToOne
自分のUser
モデルとCoordinates
他のデータベースにあるモデルとの関係をどのように作成できますか?
@NalinDobhalがコメントで言及しているように:
Djangoは現在、複数のデータベースにまたがる外部キーまたは多対多の関係をサポートしていません。ルーターを使用してモデルを異なるデータベースに分割した場合、それらのモデルによって定義された外部キーと多対多の関係は、単一のデータベースの内部にある必要があります。
私が見ているように、2つのオプションがあります。
推奨されるプロセスの短編小説:
既存のDBのDBダンプを作成します。
python manage.py dumpdata > datadump.json
Djangoシェルに入り、既存のContentType
データを削除します
python manage.py shell
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
>>> quit()
ダンプファイルをPostgreSQLDBにロードします。
python manage.py loaddata datadump.json
注:この移行プロセスは、SQLiteからPostgreSQLに固有であるだけでなく、DB間のほぼすべての移行(ATMについて知っています)で使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加