Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Eine Contao-Installation und zwei Datenbanken nutzen

  1. #1
    Contao-Fan
    Registriert seit
    26.06.2009.
    Beiträge
    266

    Standard Eine Contao-Installation und zwei Datenbanken nutzen

    Hallo zusammen,

    im Web habe ich leider nur Beiträge von 2010 und älter gefunden, dir mir auch nicht weiterhelfen konnten.

    Szenario:

    1 x MySQL-Datenbank mit Standard-Contao-Installation
    1 x MySQL-Datenbank mit Daten für spezielle Contao-Erweiterung

    In Contao 4.4. soll eine extra Erweiterung erstellt werden, die Inhalte einer zweiten MySQL-Datenbank (auf gleichem Server) verarbeitet.

    Bei der Contao-Erweiterung handelt es sich um eine Art (stark reduziertes) Blog-System, wo lediglich Texte und Bilder abgespeichert werden sollen.

    Der Kunde wünscht die Auslagerung der Blog-Beiträge in einer extra Datenbank.

    Ist dies möglich?

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Grundsätzlich ist das möglich, ja. Du kannst in deiner config.yml beliebig viele Datenbankverbindungen konfigurieren.

    Aber du kannst halt nicht Contao Models für diese Datenbank verwenden - denn die Models funktionieren nur mit der Default Connection (wie es bei Doctrine Entities aussieht weiß ich nicht - evt. geht das damit?). Der direkte Zugriff ist aber ohne Probleme möglich.

  3. #3
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Ort
    AT
    Beiträge
    204

    Standard

    Getested in Contao 5

    config.yml
    HTML-Code:
    doctrine:
        dbal:
            connections:
                default:
                    options:
                        1002: "SET SESSION sql_mode=(SELECT CONCAT(@@sql_mode, ',TRADITIONAL'))"
                second:
                    driver:   pdo_mysql
                    host:     '%second_database_host%'
                    port:     '%second_database_port%'
                    dbname:   '%second_database_name%'
                    user:     '%second_database_user%'
                    password: '%second_database_password%'
                    charset:  UTF8

    parameters.yml

    HTML-Code:
    parameters:
        second_database_host: localhost
        second_database_port: null
        second_database_name: dbname
        second_database_user: username
        second_database_password: password
    Testen

    PHP-Code:
    $db2 System::getContainer()->get('doctrine')->getConnection('second');
    $db2res $db2->prepare("SELECT * FROM tl_calendar")->execute();

    echo 
    '<pre>';
    var_dump($db2res->fetchAllAssociative());
    exit; 

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •