Ergebnis 1 bis 9 von 9

Thema: Keine Datenbankmigration bei DCA-Erweiterung des contao-jobs-basic-bundle

  1. #1
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    160

    Standard Keine Datenbankmigration bei DCA-Erweiterung des contao-jobs-basic-bundle

    Ein Kunde würde gerne Icons zu seinen Stellenanzeigen hinzufügen, wofür ich gerne das Rocksolid Iconpicker Bundle im contao-jobs-basic-bundle einsetzen möchte.

    Das DCA wurde entsprechend erweitert.

    PHP-Code:
    <?php

    // contao/dca/tl_plenta_jobs_basic_offer.php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;

    /* ---- */
    /* Icon */
    /* ---- */

    // Add icon palette
    PaletteManipulator::create()
        ->
    addLegend('icon_legend''settings_legend'PaletteManipulator::POSITION_BEFORE)
        ->
    addField('icon''icon_legend'PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('default''tl_plenta_jobs_basic_offer')
    ;

    // Add icon field
    $GLOBALS['TL_DCA']['tl_plenta_jobs_basic_offer']['fields']['icon'] = [
        
    'inputType'               => 'rocksolid_icon_picker',
        
    'eval'                    => ['iconFont' => 'files/fonts/icons.svg'],
        
    'sql'                     => "varchar(4) NULL"
    ];
    Das Feld taucht auch im Backend auf, jedoch kann ich die Datenbankmigration im Contao Manager nicht dazu bewegen, das zusätzliche Feld anzulegen. Ich erhalte immer die Meldung: "Keine ausstehenden Migrationen oder Schema-Änderungen gefunden. Deine Datenbank ist auf dem aktuellsten Stand."

    Als Gegenprobe habe ich das DCA für tl_page ebenfalls entsprechend ergänzt.

    PHP-Code:
    <?php

    // contao/dca/tl_page.php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;

    /* ---- */
    /* Icon */
    /* ---- */

    // Add icon palette
    PaletteManipulator::create()
        ->
    addLegend('icon_legend:hide''layout_legend'PaletteManipulator::POSITION_BEFORE)
        ->
    addField('icon''icon_legend:hide'PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('regular''tl_page')
    ;

    // Add icon field
    $GLOBALS['TL_DCA']['tl_page']['fields']['icon'] = [
        
    'inputType'               => 'rocksolid_icon_picker',
        
    'eval'                    => ['iconFont' => 'files/fonts/icons.svg'],
        
    'sql'                     => "varchar(4) NULL"
    ];
    Das hat die Datenbankmigration auch auf Anhieb erkannt.

    Hat jemand eine Idee, warum das bei dem Bundle nicht klappt?

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

    Standard

    Zitat Zitat von chatjack Beitrag anzeigen
    Das DCA wurde entsprechend erweitert.
    Dort ist davon aktuell nichts zu sehen. Pushe den Code ins Repo.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    160

    Standard

    Hallo Spooky,

    sorry für die Verwirrung. Den Link hatte ich gepostet um zu verdeutlichen, um welchen DCA es geht. Die Anpassung habe ich lokal über den Ordner /contao/dca vorgenommen.

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

    Standard

    Und wenn du speicherst, kommt es zu einem Fehler?
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    160

    Standard

    Kein Fehler, er ignoriert den Eintrag einfach. Das Feld ist zwar im Backend vorhanden, es wird aber kein Datenbankupdate vorgeschlagen.

    Ich bin inzwischen auf folgende Datei gestoßen.

    https://github.com/plenta/contao-job...BasicOffer.php

    Diese scheint für das Datenbankschema verantwortlich zu sein. SQL-Einträge im DCA scheinen dadurch ignoriert zu werden.

    In meinem Vendor-Ordner habe ich jetzt folgenden Eintrag ergänzt.

    PHP-Code:
        /**
         * @ORM\Column(type="string", length=4, nullable=false, options={"default": ""})
         */
        
    protected string $icon
    Danach wurde auch ein entsprechendes Datenbank-Update vorgeschlagen.

    Gibt es einen Weg, das auch updatesicher hinzubekommen? Ich kenne das Anlegen eines Datenbankschemas bisher nur über das DCA.
    Geändert von chatjack (13.10.2022 um 00:38 Uhr)

  6. #6
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    160

    Standard

    Ich kann das Datenbankfeld manuell anlegen und die Eingabe im Backend wird auch korrekt gespeichert. Aber im Anschluss will der Contao Manager das natürlich wieder löschen.

    Screenshot 2022-10-13 025832.png

    Wenn es einen Weg gäbe, dass der Contao Manager bzw. Symfony die Spalte bei der Prüfung ignoriert, würde das für den Betrieb vermutlich ausreichen.

  7. #7
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    160

    Standard

    Ich hab die Frage jetzt zusätzlich noch Mal in Github gestellt.

    https://github.com/plenta/contao-job...ndle/issues/64

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

    Standard

    Du könntest in deiner App eine eigene Entity erzeugen, die von der anderen erbt und eben das Feld hinzufügt. Bin mir aber nicht sicher, ob das so funktionieren wird.
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Nutzer Avatar von chatjack
    Registriert seit
    02.09.2012.
    Ort
    Essen
    Beiträge
    160

    Standard

    Ich kämpf mich weiter durch die Doku von Docrtine ORM. Möglicherweise kann Christian ja noch kurzfristig eine Möglichkeit bereit stellen. Danke!

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
  •