Skip to content

Commit 7f2a922

Browse files
committed
Fix Files
1 parent 8ea4fc5 commit 7f2a922

File tree

3 files changed

+363
-363
lines changed

3 files changed

+363
-363
lines changed
+39-39
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
.. warning:: Die Angaben sind nicht für das aktuelle MetaModels 2.2
2-
sondern für die Version 2.1 und älter
3-
4-
.. _cookbook_install_mm2.0-and-older:
5-
6-
MM Installation von 2.1 und älter
7-
=================================
8-
9-
10-
Installation von MM 2.1 für Contao 4.4
11-
--------------------------------------
12-
13-
Die Installationsvoraussetzungen für MetaModels 2.1 sind:
14-
15-
* ein laufendes Contao 4.4.x (LTS) und
16-
* PHP 7.1/7.2
17-
* MySQL ab 5.5.5 (InnoDB), MariaDB (ohne `strict mode`)
18-
19-
Höhere Versionen von Contao und/oder PHP sind möglich, werden aber nicht offiziell supportet.
20-
21-
22-
Installation von MetaModels 2.0 für Contao 3.5
23-
----------------------------------------------
24-
25-
Für die Installation von MetaModels 2.0 für Contao 3 wird eine Contao-LTS-Version vorausgesetzt,
26-
d.h. ein Contao 3.5.x - sowie die `Systemvoraussetzungen analog der
27-
Contao LTS <https://docs.contao.org/books/manual/3.5/de/01-installation/den-live-server-konfigurieren.html>`_.
28-
29-
Seit Januar 2018 wird in MM 2.0 eine PHP-Version von mindestens 5.6 vorausgesetzt.
30-
31-
32-
Hinweise und Anleitungen für (noch) ältere Contao- und MM-Versionen
33-
-------------------------------------------------------------------
34-
35-
:ref:`cookbook_install_update-file-attribute-v1-to-v2`
36-
37-
.. |br| raw:: html
38-
39-
<br />
1+
.. warning:: Die Angaben sind nicht für das aktuelle MetaModels 2.2
2+
sondern für die Version 2.1 und älter
3+
4+
.. _cookbook_install_mm2.0-and-older:
5+
6+
MM Installation von 2.1 und älter
7+
=================================
8+
9+
10+
Installation von MM 2.1 für Contao 4.4
11+
--------------------------------------
12+
13+
Die Installationsvoraussetzungen für MetaModels 2.1 sind:
14+
15+
* ein laufendes Contao 4.4.x (LTS) und
16+
* PHP 7.1/7.2
17+
* MySQL ab 5.5.5 (InnoDB), MariaDB (ohne `strict mode`)
18+
19+
Höhere Versionen von Contao und/oder PHP sind möglich, werden aber nicht offiziell supportet.
20+
21+
22+
Installation von MetaModels 2.0 für Contao 3.5
23+
----------------------------------------------
24+
25+
Für die Installation von MetaModels 2.0 für Contao 3 wird eine Contao-LTS-Version vorausgesetzt,
26+
d.h. ein Contao 3.5.x - sowie die `Systemvoraussetzungen analog der
27+
Contao LTS <https://docs.contao.org/books/manual/3.5/de/01-installation/den-live-server-konfigurieren.html>`_.
28+
29+
Seit Januar 2018 wird in MM 2.0 eine PHP-Version von mindestens 5.6 vorausgesetzt.
30+
31+
32+
Hinweise und Anleitungen für (noch) ältere Contao- und MM-Versionen
33+
-------------------------------------------------------------------
34+
35+
:ref:`cookbook_install_update-file-attribute-v1-to-v2`
36+
37+
.. |br| raw:: html
38+
39+
<br />
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,82 @@
1-
.. _cookbook_install_update-file-attribute-v1-to-v2:
2-
3-
Update von File-Feldern beim Umstieg von MetaModels 1.x auf 2.x
4-
===============================================================
5-
6-
Wer den Umstieg von Contao 2.x / MetaModels 1.x auf Contao 3.x / MetaModels 2.x
7-
noch nicht erledigt hat, sieht sich mit dem Problem konfrontiert, dass nach einem
8-
erfolgreichen Update eingebundene Bilder oder Dateien nicht im Frontend angezeigt
9-
werden. Dies liegt daran, dass die entsprechenden Felder in der Datenbank noch
10-
vom Typ text sind (Contao 2.x / MetaModels 1.x), für Contao 3.x / MetaModels 2.x
11-
aber vom Typ blob sein müssen. Zudem müssen die als Text abgelegten Verweise auf
12-
Dateien oder Ordner in die entsprechenden UUIDs umgewandelt werden.
13-
14-
Die folgende Anleitung beschreibt, wie man File-Felder aktualisiert, bei denen
15-
entweder Einzeldateien oder Ordner als Ziele verlinkt sind. Wir gehen dabei
16-
beispielhaft davon aus, dass wir eine Installation mit einer Tabelle **mm_movies**
17-
haben und darin die beiden Spalten **image** (Einzeldatei) und **assets** (Ordner)
18-
aktualisieren wollen.
19-
20-
#. Contao updaten, bspw. nach dieser Anleitung: |br|
21-
`Update Contao von 2.11 auf 3.5 <https://community.contao.org/de/showthread.php?59748-Update-von-2-11-auf-3-5-Schritt-f%C3%BCr-Schritt>`_
22-
Dabei darauf achten, dass beim Update der Datenbank die MM-Tabellen nicht entfernt werden.
23-
#. MM updaten: |br|
24-
Zunächst sind alle MM-Ordner unter */system/modules/* zu löschen. Stellen Sie
25-
anschließend die Erweiterungsverwaltung auf Composer um und installieren Sie
26-
die aktuelle MM-Version, bspw. komplett über das Paket *metamodels/bundle_all*. |br|
27-
Nach der Aktualisierung der Datenbank sollte MetaModels 2.x im Backend wie gewohnt
28-
zur Verfügung stehen.
29-
#. Dateiverwaltung |br|
30-
Sofern noch nicht erfolgt, sollten Sie in der Dateiverwaltung die Funktion
31-
"Synchronisieren" aufrufen, um die vorhandenen Dateien mit der Datenbank zu
32-
synchronisieren.
33-
#. Attribute aktualisieren |br|
34-
Rufen Sie nun in MetaModels das entsprechende File-Attribute auf, und aktualisieren
35-
bzw. korrigieren Sie dort die Angaben für den Wurzelordner auf die Angabe vor dem Update.
36-
#. Datenbank-Backup anlegen
37-
38-
39-
Datenbank-Felder für Einzel-Auswahlen aktualisieren
40-
...................................................
41-
42-
* Öffnen Sie Ihre Datenbank in phpMyAdmin oder einem vergleichbaren Tool und rufen
43-
Sie die Strukturansicht Ihres MetaModels auf (Bsp.: mm_movies).
44-
* Erstellen Sie dort eine Backup-Spalte der entsprechende File-Spalte mit der
45-
folgenden SQL-Anweisung: ``UPDATE mm_movies SET image_backup=image``
46-
* Ändern Sie danach den Typ der Spalte des File-Attributs zu blob: |br|
47-
``ALTER TABLE `mm_movies` CHANGE `image` `image` BLOB NULL DEFAULT NULL``
48-
* Danach fügen Sie mit dem folgenden Befehl die UUID der betreffenden
49-
Dateien in die entsprechenden Felder ein: |br|
50-
``UPDATE mm_movies SET image=(SELECT uuid FROM `tl_files` WHERE tl_files.path=mm_movies.image_backup)``
51-
* Löschen Sie nach dem erfolgreichem Update die Backupspalte.
52-
53-
54-
Datenbank-Felder für Ordner-Auswahlen aktualisieren
55-
...................................................
56-
57-
* Rufen Sie in MetaModels das entsprechende File-Attribute auf, und aktualisieren
58-
bzw. korrigieren Sie dort die Angaben für den Wurzelordner auf die Angabe vor
59-
dem Update.
60-
* Öffnen Sie Ihre Datenbank in phpMyAdmin oder einem vergleichbaren Tool und
61-
rufen Sie die Strukturansicht Ihres MetaModels auf. Erstellen Sie dort wiederum
62-
eine Backup-Spalte der entsprechende File-Spalte und kopieren Sie mit der
63-
folgenden SQL-Anweisung den Inhalt der Spalte dort hinein: |br|
64-
``UPDATE mm_movie SET assets_backup=assets``
65-
* Ändern Sie danach den Typ der Spalte des File-Attributs zu blob: |br|
66-
``ALTER TABLE `mm_movies` CHANGE `assets` `assets` BLOB NULL DEFAULT NULL``
67-
* Suchen Sie nun in der Spalte `backup_assets` die ersten fünfzehn Zeichen
68-
heraus (inkl. Anführungszeichen, bis zum Beginn des Pfads zum entsprechenden
69-
Ordner), die in etwa so aussehen: ``a:1:{i:0;s:83:"``
70-
* Passen Sie nun den nachfolgenden SQL-Befehl so an, dass der Teil von `CONCAT`
71-
Ihren Angaben entspricht: |br|
72-
``UPDATE mm_movies SET assets=CONCAT('a:1:{i:0;s:83:"', (`` |br|
73-
``SELECT uuid FROM tl_files WHERE path=SUBSTRING(assets_backup, 16, LENGTH(assets_backup)-16-2)), '";}'`` |br|
74-
``) WHERE (`` |br|
75-
``SELECT uuid FROM tl_files WHERE path=SUBSTRING(assets_backup, 16, LENGTH(assets_backup)-16-2)`` |br|
76-
``) IS NOT NULL``
77-
* Anschließend sollten auch die Verweise auf Ordner wieder korrekt funktionieren.
78-
79-
80-
.. |br| raw:: html
81-
82-
<br />
1+
.. _cookbook_install_update-file-attribute-v1-to-v2:
2+
3+
Update von File-Feldern beim Umstieg von MetaModels 1.x auf 2.x
4+
===============================================================
5+
6+
Wer den Umstieg von Contao 2.x / MetaModels 1.x auf Contao 3.x / MetaModels 2.x
7+
noch nicht erledigt hat, sieht sich mit dem Problem konfrontiert, dass nach einem
8+
erfolgreichen Update eingebundene Bilder oder Dateien nicht im Frontend angezeigt
9+
werden. Dies liegt daran, dass die entsprechenden Felder in der Datenbank noch
10+
vom Typ text sind (Contao 2.x / MetaModels 1.x), für Contao 3.x / MetaModels 2.x
11+
aber vom Typ blob sein müssen. Zudem müssen die als Text abgelegten Verweise auf
12+
Dateien oder Ordner in die entsprechenden UUIDs umgewandelt werden.
13+
14+
Die folgende Anleitung beschreibt, wie man File-Felder aktualisiert, bei denen
15+
entweder Einzeldateien oder Ordner als Ziele verlinkt sind. Wir gehen dabei
16+
beispielhaft davon aus, dass wir eine Installation mit einer Tabelle **mm_movies**
17+
haben und darin die beiden Spalten **image** (Einzeldatei) und **assets** (Ordner)
18+
aktualisieren wollen.
19+
20+
#. Contao updaten, bspw. nach dieser Anleitung: |br|
21+
`Update Contao von 2.11 auf 3.5 <https://community.contao.org/de/showthread.php?59748-Update-von-2-11-auf-3-5-Schritt-f%C3%BCr-Schritt>`_
22+
Dabei darauf achten, dass beim Update der Datenbank die MM-Tabellen nicht entfernt werden.
23+
#. MM updaten: |br|
24+
Zunächst sind alle MM-Ordner unter */system/modules/* zu löschen. Stellen Sie
25+
anschließend die Erweiterungsverwaltung auf Composer um und installieren Sie
26+
die aktuelle MM-Version, bspw. komplett über das Paket *metamodels/bundle_all*. |br|
27+
Nach der Aktualisierung der Datenbank sollte MetaModels 2.x im Backend wie gewohnt
28+
zur Verfügung stehen.
29+
#. Dateiverwaltung |br|
30+
Sofern noch nicht erfolgt, sollten Sie in der Dateiverwaltung die Funktion
31+
"Synchronisieren" aufrufen, um die vorhandenen Dateien mit der Datenbank zu
32+
synchronisieren.
33+
#. Attribute aktualisieren |br|
34+
Rufen Sie nun in MetaModels das entsprechende File-Attribute auf, und aktualisieren
35+
bzw. korrigieren Sie dort die Angaben für den Wurzelordner auf die Angabe vor dem Update.
36+
#. Datenbank-Backup anlegen
37+
38+
39+
Datenbank-Felder für Einzel-Auswahlen aktualisieren
40+
...................................................
41+
42+
* Öffnen Sie Ihre Datenbank in phpMyAdmin oder einem vergleichbaren Tool und rufen
43+
Sie die Strukturansicht Ihres MetaModels auf (Bsp.: mm_movies).
44+
* Erstellen Sie dort eine Backup-Spalte der entsprechende File-Spalte mit der
45+
folgenden SQL-Anweisung: ``UPDATE mm_movies SET image_backup=image``
46+
* Ändern Sie danach den Typ der Spalte des File-Attributs zu blob: |br|
47+
``ALTER TABLE `mm_movies` CHANGE `image` `image` BLOB NULL DEFAULT NULL``
48+
* Danach fügen Sie mit dem folgenden Befehl die UUID der betreffenden
49+
Dateien in die entsprechenden Felder ein: |br|
50+
``UPDATE mm_movies SET image=(SELECT uuid FROM `tl_files` WHERE tl_files.path=mm_movies.image_backup)``
51+
* Löschen Sie nach dem erfolgreichem Update die Backupspalte.
52+
53+
54+
Datenbank-Felder für Ordner-Auswahlen aktualisieren
55+
...................................................
56+
57+
* Rufen Sie in MetaModels das entsprechende File-Attribute auf, und aktualisieren
58+
bzw. korrigieren Sie dort die Angaben für den Wurzelordner auf die Angabe vor
59+
dem Update.
60+
* Öffnen Sie Ihre Datenbank in phpMyAdmin oder einem vergleichbaren Tool und
61+
rufen Sie die Strukturansicht Ihres MetaModels auf. Erstellen Sie dort wiederum
62+
eine Backup-Spalte der entsprechende File-Spalte und kopieren Sie mit der
63+
folgenden SQL-Anweisung den Inhalt der Spalte dort hinein: |br|
64+
``UPDATE mm_movie SET assets_backup=assets``
65+
* Ändern Sie danach den Typ der Spalte des File-Attributs zu blob: |br|
66+
``ALTER TABLE `mm_movies` CHANGE `assets` `assets` BLOB NULL DEFAULT NULL``
67+
* Suchen Sie nun in der Spalte `backup_assets` die ersten fünfzehn Zeichen
68+
heraus (inkl. Anführungszeichen, bis zum Beginn des Pfads zum entsprechenden
69+
Ordner), die in etwa so aussehen: ``a:1:{i:0;s:83:"``
70+
* Passen Sie nun den nachfolgenden SQL-Befehl so an, dass der Teil von `CONCAT`
71+
Ihren Angaben entspricht: |br|
72+
``UPDATE mm_movies SET assets=CONCAT('a:1:{i:0;s:83:"', (`` |br|
73+
``SELECT uuid FROM tl_files WHERE path=SUBSTRING(assets_backup, 16, LENGTH(assets_backup)-16-2)), '";}'`` |br|
74+
``) WHERE (`` |br|
75+
``SELECT uuid FROM tl_files WHERE path=SUBSTRING(assets_backup, 16, LENGTH(assets_backup)-16-2)`` |br|
76+
``) IS NOT NULL``
77+
* Anschließend sollten auch die Verweise auf Ordner wieder korrekt funktionieren.
78+
79+
80+
.. |br| raw:: html
81+
82+
<br />

0 commit comments

Comments
 (0)