Zur Konfiguration der Datenbankverbindung werden die Dateien config.yml und parameters.yml verwendet (siehe auch die Symfony Dokumentation). Während in der config.yml nur die Platzhalter angegeben werden, werden die Werte in der parameters.yml gefüllt.
Beispiele zur Einrichtung finden sich in den Installationsanleitungen, so z.B. im Kapitel Einrichtung von Mapbender3 unter Ubuntu oder Debian.
Mapbender3 verwendet Doctrine. Doctrine ist eine Sammlung von PHP Bibliotheken und beitet einen objektrelationalen Mapper und eine Datenbankabstraktionsschicht. Auf der Doctrine Projektseite finden sich weitere Informationen.
Die Standarddatenbankdefinition erfolgt in der config.yml und sieht folgendermaßen aus:
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
path: %database_path%
user: %database_user%
password: %database_password%
charset: UTF8
logging: %kernel.debug%
profiling: %kernel.debug%
orm:
auto_generate_proxy_classes: %kernel_debug%
auto_mapping:true
Bei Werten, die von dem %-Zeichen umschlossen werden, handelt es sich um Parameter. Diese Parameter werden von der parameters.yml geladen. Um die Art der Datenbank zu ändern, müssen daher die Parameterwerte in der parameters.yml verändert werden.
Beachten Sie, dass Sie den entsprechenden PHP-Treiber installiert bzw. aktiviert haben.
Mit Mapbender3 können Sie auch mehrere Datenbanken verwenden. Dies wird empfohlen, wenn Sie Ihre eigenen Daten von den Mapbender3-Daten trennen möchten. Das kann nützlich sein, wenn Sie eigenen Code verwenden, der nicht zu einem Mapbender3-Bundle gehört.
Es gibt eine Standard-Datenbankverbindung, die vom Mapbender3 verwendet wird.
Wenn Sie eine andere Datenbank verwenden möchten, müssen Sie eine zweite Datenbankverbindung mit einem anderen Namen definieren und diese verwenden.
Es folgt ein Beispiel mit zwei Datenbankverbindungen in der config.yml:
doctrine:
dbal:
default_connection: default
connections:
# Datenbankverbindung default
default:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
path: %database_path%
user: %database_user%
password: %database_password%
charset: UTF8
logging: %kernel.debug%
profiling: %kernel.debug%
# Datenbankverbindung search_db
search_db:
driver: %database2_driver%
host: %database2_host%
port: %database2_port%
dbname: %database2_name%
path: %database2_path%
user: %database2_user%
password: %database2_password%
charset: UTF8
logging: %kernel.debug%
profiling: %kernel.debug%
Die Definition der Datenbank Variablen wird in der parameters.yml Datei vorgenommen.
parameters:
# Datenbankverbindung "default"
database_driver: pdo_pgsql
database_host: localhost
database_port: 5432
database_name: mapbender3
database_path: ~
database_user: postgres
database_password: postgres
# Datenbankverbindung "search_db"
database2_driver: pdo_pgsql
database2_host: localhost
database2_port: 5432
database2_name: search_db
database2_path: ~
database2_user: postgres
database2_password: postgres