I am a relative RDBMS newbie, having only written serious SQL only Microsoft Access. I choose to do much of my relational operations in Matlab. My experience in both are from work.

In my non-work world, I've had no need to develop data skills until I've moved from Windows 7 to 10. I decided that paying more than half a grand (Canadian) for desktop Outlook is too much. As I want to avoid the cloud, I looked at EssentialPIM, which uses Firebird. I don't want to spend a lot of time getting to know more than one DBMS strongly; hence, if I go with EssentialPIM and Firebird, it would be worthwhile spinning up on MariaDB, which comes with Cywin (which I'm very much attached to).

This plan is only good if there is a free way to migrate data between Firebird to MariaDB. I've found commercial products online, but was wondering if a free (and not too involved) way?

I've received autogenerated MySQL SQL source code that creates tables and inserts data literals. There is lots and lots of code that is specific to the source environment. Converting it to Access took a lot of conferring with the most esoteric clauses of the SQL language references for the two environments. Consequently, I don't consider SQL source code dumps to be a welcome solution.

Related note #1: In case a SQL dump is the only free way ahead, is that what is generated by Firebird's gbak backup utility? All my googling hasn't been able to answer this. The most relevant detail is gbak's transportable parameter, but it doesn't really specify the form of the backup file.

Relevant note #2: In case the migration is too arduous, I looked into using Firebird itself. Since the EssentialPIM database will be local to my non-administrator account, I believe that I'm interested in the embedded server Firebird. But man, it still looks a ton more complicated than Access (which is admittedly a low bar) and even MySQL (based on my short stint with that). Afternote: Looks like I was right about the greater involvement. When the embedded server page says "Embedded Server is a Superserver engine plus client rolled into one library", I missed the word "library" and thought that it rolled in a command line client. Back to figuring out the setup in a more general way.

  • If you have Cygwin, you have sed which can do the lion's share of any db_x_to_db_y script modifications - at least I've found this to be the case in the past. Also check here and here. HTH and welcome to the forum! :-) – Vérace Feb 9 at 22:41
  • @Verace: My sole experience in translating SQL dialects was MySQL->Access. It is feasible, but I don't consider it to be practical. P.S. Still looking into your two links. – user2153235 Feb 9 at 23:39
  • Just for context, I used Vim rather than sed. I find it hard to visualize the effect of complex sed commands, while the impact is immediate and obvious in Vim. The operations are not just on a the basis of individual physical lines. Vim commands can apply to line ranges defined either by line numbers or patterns. Vim patterns can match new lines, and not just for anchoring at the end of expressions. And there are hard cases wherein one would record a sequence of key strokes (i.e. operations) into a register for repetitive execution. – user2153235 Feb 9 at 23:39
  • @Verace: Thanks for your 2 leads. The free options seem to be gbak, isq (presumably this, for which Cygwin's fisql may be a substitute), FBExport, and Clever Components's Interbase DataPump. – user2153235 Feb 10 at 1:33
  • I haven't found indication that gbak generates SQL, but it's possible. FBExport does, and I've been trying to find examples of the output to see if it would be as arduous my MySQL->Access migration. [f]isql apparently requires an ODBC source, which doesn't make it simple in my mind, but better to know about the option. – user2153235 Feb 10 at 1:34