SQLite to MariaDB Migration of Solder

June 2, 2020 13:03

What happended?

Well, quick and simple: I needed to migrate my Solder service for the Technic Launcher to an other database backend for several reasons. One main reason was, that the current hoster of it planned to shutdown some deprecated PHP versions - but Solder does not support the sqlite database for newer PHP versions anymore. So I needed to switch the database solution (without loosing too much data, because the instance houses several hundert modification at the time) right now.

How did I proceed?

As first: Solder does not support this at all! Make sure to have backups and experiment with them first. Never touch production until you are ready! I started by downloading the current database file and tried to open it with PHPLiteAdmin, but the exports of that web interface where not compartible with the PHPMyAdmin instance of MariaDB I planned to migrate to.

So I installed an local XAMPP instance and used Full Convert to copy the needed data into it. Also make sure to use a non-trail version, otherwise some random fields will be replaced with TESTTESTTEST! Then I was able to export the database from PHPMyAdmin of XAMPP to a .sql file for my hoster.

But sqlite does handle DATETIME fileds other than MariaDB does: Before uploading the migrated and exported database I needed to apply the following RegEx-Replace to the sql-instruction file: (\d\d)/(\d\d)/(\d\d\d\d) -> $3-$2-$1. Additionally, after visting the webinterface, I noted that all my builds and modpacks have been switched to private again (because the isPrivate field contaned the string False, which equals to true!) - and I needed to fix that by hand. Maybe it would be helfpul to also replace all False instances with 0 and for True accordingly. But that you have to figure out on your own 😋.

I hope this saved you some hours of trail-and-error…