While managing SAM Broadcaster for Radio H2O I got sick of all the bugs and charset incompatibilities between filesystem and Firebird DB dealing with other SAMBC quirks. So, I decided to migrate SAMBC data from FirebirdSQL to MySQL to see if it could help. In short; it didn’t solve main problem, because SAMBC messes up everything by using Windows default code page for its internal workings. Never the less, it was a nice exercise in coding for two databases and charset conversion.
Migrate SAM Broadcaster Firebird database to MySQL
This script generates a valid MySQL SQL script from SAMBC Firebird database if
config.php is set to
or inserts data from Firebird DB directly into MySQL database if
WORK_MODE is set to
In latter case you have to make sure the database and its tables exist.
Make sure that the MySQL tables are empty and are set up for receiving utf8 data.
utf8_unicode_ci, which makes life easier because it is case insensitive.
You can convert MySQL database to utf8 with following SQL:
ALTER DATABASE samdb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Note: Charset conversion can be disable by setting
config.php to same value.
- Recent PHP version. I'm curently using PHP/5.5.1 and have not tested this script on older versions
- PHP PDO extension enabled http://php.net/manual/en/book.pdo.php
- Drop and recreate MySQL tables from SAMBC sql files
- Maybe check songlist entries for moved/removed files before import
- Next step: Migrate to other software (Take note, Spacial)