Content
Migration from OpenProject 9.5 to 12 fails / Migration von OpenProject 9.5 zu 12 schlägt fehl
Added by Thorsten Talies almost 2 years ago
Bei der Migration von OpenProject 9.5 zu 12 in einem Docker-Container kommt es bei der Datenbank-Konvertierung zu einem Fehler, der zum Abbruch führt.
Es wurden schon etliche Versuche unternommen, die Daten von MySQL nach PostgreSQL zu migrieren.
Vorgehen zur Migration der OpenProject Datenbank von MySQL auf PostgreSQL
1. Aufbau der neuen Umgebung
a. Bereitstellung eines Containers für PostgreSQL (Sowohl Version 15 (latest) als auch Version 10 probiert)
b. Bereitstellen eines Docker Containers für OpenProject (Sowohl Version 10 als auch 12 probiert)
2. Durch die Bereitstellung der Container für OpenProject mit den Parametern "MYSQL_DATABASE_URL" und "DATABASE_URL" verbindet sich der Container mit beiden Datenbanken und versuchte die Daten zu migrieren. In der Version 12 von OP brach der Container diesen Vorgang ohne Fehler ab und befüllte die PostgreSQL jedes mal mit den DEMO Datensätzen. In der Versionb 10 brach der interaktive Vorgang mit einem Fehler ab und fragte sinngemäß "Was mache ich hier?".
Folgender Fehler trat bei der Version 10 auf und wurde geloggt:
What I am doing here?
The value 262 is not of the expected type (MEMBER 2 3 4 5 6 8 9 10 11 14 15 17 20 21 23 27 28 30 31 32 33 35 41 42 45 46 47 48 49 50 51 52 54 55 56 60 61 62 63 64 65 69 72 76 255 77 78 79 82 83 87 90 92 93 94 95 96 97 98 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 254).
Failed to import MySQL database into Postgres. See above.
Der Inhalt mit dem "The value 262 ...
." ist mehrfach im Log enthalten
- An unhandled error condition has been signalled:
- ERROR A thread failed with error:
davor.
3. Daraufhin wurde auch probiert mit einem PGLoader Container die Daten zu migrieren leider mit dem gleichen Ergebnis. Hier wurde die Latest Version verwendet und auch einmal die Version mit CCL
Log der Fehler sieht dabei wie folgt aus:
- A thread failed with error: The value 262 is not of the expected type
- TYPE-ERROR: The value 262 is not of the expected type
- An unhandled error condition has been signalled: The value 262 is not of the expected type
Der Fehler scheint aber identisch zu sein.
In einem weiteren Versuch wurde die Collation der MySQL DB auf UFT8MB4 gestellt. Damit verschwand der o.g. Fehler, es wurde auch ein Teil der Daten kopiert, aber die Migration bricht immer noch ab. Diesmal mit folgendem Fehler:
Migrating to AddDerivedEstimatedHoursToWorkPackages (20190722082648)
== 20190722082648 AddDerivedEstimatedHoursToWorkPackages: migrating ===========
-- add_column(:work_packages, :derived_estimated_hours, :float)
-> 0.0012s
-- add_column(:work_package_journals, :derived_estimated_hours, :float)
-> 1.0028s
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, 19934, WorkPackage, 1365, _'Estimated hours' changed to 'Derived estimated hours'_, 2022-12-19 10:03:38.950463+00, 6, work_packages).
.
.
.
Caused by:
ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, 19934, WorkPackage, 1365, _'Estimated hours' changed to 'Derived estimated hours'_, 2022-12-19 10:03:38.950463+00, 6, work_packages).
Woran kann dies liegen und wie kann die Migration erfolgreich durchgeführt werden?
Die Alt-Daten müssen erhalten bleiben.
Replies (1)
When migrating from OpenProject 9.5 to 12 in a Docker container, an error occurs during the database conversion that causes it to abort.
Quite a few attempts have been made to migrate the data from MySQL to PostgreSQL.
Procedure to migrate the OpenProject database from MySQL to PostgreSQL
1. setup of the new environment
a. Provision of a container for PostgreSQL (both version 15 (latest) and version 10 tried)
b. Deploying a Docker container for OpenProject (Both version 10 and 12 tried).
2. by deploying the containers for OpenProject with the parameters "MYSQL_DATABASE_URL" and "DATABASE_URL", the container connects to both databases and tried to migrate the data. In version 12 of OP the container aborted this process without error and filled the PostgreSQL with the DEMO records every time. In version 10 the interactive process stopped with an error and asked "What am I doing here?".
The following error occurred in version 10 and was logged:
What I am doing here?
The value 262 is not of the expected type (MEMBER 2 3 4 5 6 8 9 10 11 14 15 17 20 21 23 27 28 30 31 32 33 35 41 42 45 46 47 48 49 50 51 52 54 55 56 60 61 62 63 64 65 69 72 76 255 77 78 79 82 83 87 90 92 93 94 95 96 97 98 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 254).
Failed to import MySQL database into Postgres. See above.
The content with the "The value 262 ...." is included in the log several times.
- An unhandled error condition has been signalled:
- ERROR A thread failed with error:
before that.
3. thereupon was also tried with a PGLoader container to migrate the data unfortunately with the same result. Here the Latest version was used and also once the version with CCL.
Log of the error looks as follows:
- A thread failed with error: The value 262 is not of the expected type
- TYPE-ERROR: The value 262 is not of the expected type
- An unhandled error condition has been signalled: The value 262 is not of the expected type
However, the error seems to be identical.
In another attempt the collation of the MySQL DB was set to UFT8MB4. With this, the above error disappeared, some of the data was also copied, but the migration still aborts. This time with the following error:
Migrating to AddDerivedEstimatedHoursToWorkPackages (20190722082648)
== 20190722082648 AddDerivedEstimatedHoursToWorkPackages: migrating ===========
-- add_column(:work_packages, :derived_estimated_hours, :float)
-> 0.0012s
-- add_column(:work_package_journals, :derived_estimated_hours, :float)
-> 1.0028s
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, 19934, WorkPackage, 1365, _'Estimated hours' changed to 'Derived estimated hours'_, 2022-12-19 10:03:38.950463+00, 6, work_packages).
.
.
.
Caused by:
ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, 19934, WorkPackage, 1365, _'Estimated hours' changed to 'Derived estimated hours'_, 2022-12-19 10:03:38.950463+00, 6, work_packages).
What can be the reason for this and how can the migration be carried out successfully?
The data from MySQL must be preserved.