Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: .env statt config/parameters.yml

  1. #1
    Contao-Fan
    Registriert seit
    21.08.2012.
    Beiträge
    280
    User beschenken
    Wunschliste

    Standard .env statt config/parameters.yml

    Hallo zusammen,


    ich habe eine Contao 4.9 Installation, in welcher die DB-Credentials noch herkömmlich in der config/parameters.yml definiert sind.
    Nun möchte ich auf eine .env-Datei umstellen. Nach eingehender Recherche (u. a. hier: https://docs.contao.org/dev/getting-...-configuration) habe ich die .env ins Root der Installation gelegt und die Konfigurationsparameter für die DB dort eingetragen.
    Wenn ich nun allerdings die parameters.yml entferne, dann wird die DB-Verbindung nich korrekt aufgebaut - ergo: die .env-Datei wird nicht oder nicht korrekt eingelesen.

    • Wird die .env nicht automatisch geladen?
    • Ist der Speicherort der .env korrekt?
    • Benötigt es ein weiteres Paket zum Laden via .env?



    SQL-Fehler:
    Code:
    SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected
    .env:
    Code:
    DATABASE_HOST=mysql
    DATABASE_PORT=3306
    DATABASE_USER=root
    DATABASE_PASSWORD=''
    DATABASE_NAME=contao_demo
    config/parameters.yml:
    Code:
    parameters:
        database_host: localhost
        database_port: 3306
        database_user: root
        database_password: ''
        database_name: contao_demo
        secret: somesillystring
    Grüße vom Gyer

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

    Standard

    Zitat Zitat von MacGyer Beitrag anzeigen
    Wenn ich nun allerdings die parameters.yml entferne, dann wird die DB-Verbindung nich korrekt aufgebaut - ergo: die .env-Datei wird nicht oder nicht korrekt eingelesen.
    Hast du danach composer install ausgeführt?



    Zitat Zitat von MacGyer Beitrag anzeigen
    Wird die .env nicht automatisch geladen?
    Doch, die sollte automatisch geladen werden.



    Zitat Zitat von MacGyer Beitrag anzeigen
    Ist der Speicherort der .env korrekt?
    Nicht ganz. Die Datenbankzugangsdaten sind ja abhängig von der jeweiligen Umgebung und sollten nicht versioniert werden. Üblicherweise definiert man solche Daten in der .env.local - welche ebenfalls automatisch geladen wird, vorausgesetzt eine .env ist vorhanden. Üblicherweise versioniert man wie gesagt die .env und die .env.local nicht. Letzteres fügst du in deine .gitignore hinzu.



    Zitat Zitat von MacGyer Beitrag anzeigen
    Benötigt es ein weiteres Paket zum Laden via .env?
    Nein, das ist nicht notwendig.



    Zitat Zitat von MacGyer Beitrag anzeigen
    .env:
    Code:
    DATABASE_HOST=mysql
    DATABASE_PORT=3306
    DATABASE_USER=root
    DATABASE_PASSWORD=''
    DATABASE_NAME=contao_demo
    Die Umgebungsvariable heißt DATABASE_URL. Wenn du eigene Umgebungsvariablen verwenden möchtest, müsstest du dementsprechend deine config/config.yaml anpassen und diese Umgebungsvariablen dort verwenden.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Üblicherweise definiert man solche Daten in der .env.local - welche ebenfalls automatisch geladen wird, vorausgesetzt eine .env ist vorhanden.
    Kannst du das etwas näher erklären. Eine .env.local allein reicht nicht aus?
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

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

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Kannst du das etwas näher erklären. Eine .env.local allein reicht nicht aus?
    Ja, siehe https://docs.contao.org/dev/getting-...-configuration
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Ah:
    .env.local: Loaded if both .env and .env.local are found. Overrides parameters for local development.
    Glatt überlesen - Danke
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  6. #6
    Contao-Fan
    Registriert seit
    21.08.2012.
    Beiträge
    280
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Die Umgebungsvariable heißt DATABASE_URL. Wenn du eigene Umgebungsvariablen verwenden möchtest, müsstest du dementsprechend deine config/config.yaml anpassen und diese Umgebungsvariablen dort verwenden.
    Vielen Dank, Spooky.

    Die Info mit der DATABASE_URL war die fehlende. Ich hatte mich an der Symfony Doku zu DotEnv orientiert (https://symfony.com/doc/current/conf...nv-file-syntax).

    Hab nun in der .env.local die Url drin und läuft:
    Code:
    DATABASE_URL="mysql://root@localhost:3306/contao_demo"
    Grüße vom Gyer

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

    Standard

    Zitat Zitat von MacGyer Beitrag anzeigen
    Die Info mit der DATABASE_URL war die fehlende. Ich hatte mich an der Symfony Doku zu DotEnv orientiert (https://symfony.com/doc/current/conf...nv-file-syntax).
    Ja, da hattest du die Symfony 5 Dokumentation erwischt. Die Default Werte bei Contao entsprechen aber noch dem Symfony 4 Standard: https://symfony.com/doc/4.4/configur...s-in-env-files
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Fan
    Registriert seit
    21.08.2012.
    Beiträge
    280
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ja, da hattest du die Symfony 5 Dokumentation erwischt. Die Default Werte bei Contao entsprechen aber noch dem Symfony 4 Standard: https://symfony.com/doc/4.4/configur...s-in-env-files
    Ja gut, aber die Docs von Symfony 4.4 und 5 sind an der Stelle identisch

    Egal, danke noch mal und ein schönes Wochenende
    Grüße vom Gyer

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

    Standard

    Achso stimmt, bei beiden steht eigentlich aber auch DATABASE_URL (weil das der default vom Doctrine Bundle ist).
    » sponsor me via GitHub or PayPal or Revolut

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
  •