Ja, het is mogelijk om meerdere databases te gebruiken met Django. Volgens de officiële Django documentatie kunt u dit doen door een DATABASES-setting te gebruiken in uw Django instellingenbestand.
Django biedt een hoge graad van flexibiliteit als het gaat om het werken met meerdere databases. Het DATABASES -setting is een dictionary waarin de sleutels de database-aliasnamen zijn en de waarden zijn dictionaries met instellingen voor individuele databases. Zo’n instelling kan bestaan uit de naam, de DIENSTENAANBIEDER, het wachtwoord, de host, de poort etc.
Hier is een voorbeeld van hoe je dit kunt doen.
```
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql’,
‘NAME’: ‘main_db’,
‘USER’: ‘mydatabaseuser’,
‘PASSWORD’: ‘mypassword’,
‘HOST’: ‘localhost’,
‘PORT’: ‘5432’,
},
‘extra’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘extra_db’,
‘USER’: ‘extrauser’,
‘PASSWORD’: ‘extrapassword’,
‘HOST’: ‘localhost’,
‘PORT’: ‘3306’,
}
}
```
In dit voorbeeld hebben we twee databases, de “default” database (PostgreSQL) en een “extra” database (MySQL).
Om een model betrekking te laten hebben op een specifieke database, kunt u de `Meta` class gebruiken binnen uw modelclass om het `db_table` en `managed` velden in te stellen. De `db_table` veld is de naam van de database waar het model naar verwijst en de ‘managed’ is een booleaan waarde die informeert Django of het model gecreëerd of gedropped moet worden tijdens syncdb.
Zoals je hieronder kunt zien, gebruiken wij de Hero model met de ‘extra’ database:
```
class Hero(models.Model):
name = models.CharField(max_length=60)
gender = models.CharField(max_length=10)
Bijvoorbeeld, om alle Hero-objecten uit de ‘extra’ database op te halen, zou de code er zo uit zien:
```
all_heroes = Hero.objects.using(‘extra’).all()
```
Ik hoop dat deze uitleg helpt. Voel je vrij om te vragen als je nog meer vragen of problemen hebt.
Bronnen:
- Django Documentatie: Meerdere databases, https://docs.djangoproject.com/en/3.1/topics/db/multi-db/
- Django Documentatie: QuerySets, https://docs.djangoproject.com/en/3.1/ref/models/querysets/#using