Djangoで複数のデータベースに接続する方法
Djangoで複数のデータベースに接続する手順:
- 設定ファイルsettings.pyでDjangoで複数のデータベース設定を行います。DATABASES設定で、複数のデータベース接続を指定できます。各接続には、次のように一意の名前を付ける必要があります。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'default_db',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
},
'second_db': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'second_db',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
- 複数のデータベースに対するデータベースエイリアスを作成します。Django の models.py ファイルでは、各モデルクラスに対して使用するデータベース接続を指定できます。モデルクラスの Meta クラスで、使用されるデータベースエイリアスを指定する db_table 属性を追加できます。以下に例を示します。
class MyModel(models.Model):
# fields
class Meta:
db_table = 'second_db'
- 指定したデータベース接続でコードを使う. データベース操作を行う時は using() メソッドに利用するデータベース接続を指定できる.
MyModel.objects.using('second_db').all()
これにより、指定されたデータベース接続を利用したデータベース操作が可能になります。
複数のデータベース接続を使用する場合は、それぞれのデータベース接続の接続情報が正しく、データベースが正しくセットアップと起動を行っていることを確認する必要があります。