ydeploy icon indicating copy to clipboard operation
ydeploy copied to clipboard

MetaInfo - Media - Standardfelder erzeugt in der Migrationsdatei einen SQL Fehler

Open tbaddade opened this issue 6 years ago • 7 comments

Generierte Migration

rex_sql_table::get('rex_media')
        ->ensureColumn(new rex_sql_column('med_description', 'text', true, '\'\'', null), 'med_focuspoint')
        ->ensureColumn(new rex_sql_column('med_copyright', 'text', true, '\'\'', null), 'med_description')
        ->alter();

Dies Part '\'\'' schlägt fehl

Lösung: Migrationsdatei direkt anpassen und nochmals deployen.

tbaddade avatar Jul 31 '19 16:07 tbaddade

Das Grundproblem wurde im metainfo-Addon behoben: https://github.com/redaxo/redaxo/pull/3270

Wenn das Problem bei schon bestehenden Seiten auftritt:

  • Default-Wert in den Spalten entfernen, bzw. auf NULL setzen
  • Nochmal Diffen
  • So sollte es sich dann auf allen Instanzen normalisieren und angleichen (egal ob MySQL oder MariaDB)

gharlan avatar Feb 12 '20 17:02 gharlan

Wir hatten hier eben dieses Problem

Via YForm hatte Robert ein Feld angelegt. Nach dem Diff erschien das in der Migration:

 ->ensureColumn(new rex_sql_column('statement', 'text', false, '\'\'', null), 'search')

Nach meiner Migration und einem weitere Diff erschien das in einer neuen MIgrationsdatei:

->ensureColumn(new rex_sql_column('statement', 'text', false, '\'\\\'\\\'\'', null))

tbaddade avatar Mar 11 '22 17:03 tbaddade

Ich habe mir das nochmal angeschaut. Es ist denke ich doch ein Bug im Core in rex_sql_table, aber gleichzeitig leider schwer zu fixen ohne BC-Probleme.

Bin mir noch nicht sicher, was ich da mache.

Solange das Problem besteht, gilt sinngemäß was ich oben für die Metafelder geschrieben habe. Also am besten den Default-Wert von den TEXT-Feldern entfernen.

gharlan avatar Mar 20 '22 13:03 gharlan

Mir ist das in der letzten Zeit nicht mehr begegnet, dir @tyrant88 ? Lag das an den unterschiedlichen MySQL/MariaDB-Versionen die wir inzwischen wieder angeglichen haben?

AWqxKAWERbXo avatar Apr 09 '23 20:04 AWqxKAWERbXo

Es passierte ja bei uns auch, weil du mit MariaDB neue Felder angelegt hattest. Das hast du wohl nichit mehr getan seitdem. Oder eben kein MariaDB mehr benutzt in deinen Projekten. Oder immer mit Maria auch bei deinem Hoster.

tyrant88 avatar Apr 09 '23 21:04 tyrant88