I thought it might be good to give everyone an idea of what it takes (at least currently) to migrate from SME10 to SME11.
First of course, you need a fresh install of SME11 on the target and make sure it is fully updated. Since I do web programming I also installed Webhosting and PHPmyadmin on the new SME 11 installation.
For my first attempt at transfer I made a backup to a USB disk from the admin console (when you log into the server directly using the admin user) on the SME10 machine. I then used the admin console on the SME11 machine to restore from the USB disk. Everything seemed to work fine until I tried accessing one of the test web sites on the SME11 server and promptly got the following error message (being a test server I have all PHP error messages enabled):
Fatal error: Uncaught mysqli_sql_exception: Column count of mysql.proc is wrong. Expected 21, found 20. The table is probably corrupted
The error is tied to a line that reads:
$check_query = tep_db_query('show function status'); //(tep_db_query is a wrapper for the mysqli_query function)
The results of the query are a list of user defined MySQL functions which is checked for the existence of a couple of functions and if they don't exist they are created with a MySQL "create function" query.
After getting the error I checked the proc table in the mysql database using PHPmyadmin and quickly realized that this table is where user defined MySQL functions are stored. On the old SME10 test server I used PHPmyadmin to perform "show create table" on the mysql.proc table and saved the results including that it used MariaDB 5.5.68 (the version shown by PHPmyadmin on SME10). I did a completely new install of SME11 on the new test server and then again used the "show create table proc" command and compared the results for MariaDB 11.4.10 on the new machine to what I got from the old SME10 test server. It quickly became apparent that not only does MariaDB add a new column to the mysql.proc table but the definitions for several of the other columns have also changed. In addition, while this table on the SME10 machine contained only functions that were defined by my own test web sites, the new SME11 version already contains quite a few defined procedures and functions that you don't want to overwrite from an old backup.
A few other failed attempts at transfer finally led me to the Migratehelper contribution which I discovered was already installed on the SME10 machine when I tried to use yum to install it per the instructions. It may have been made part of the of the final update that was made to SME10.
The procedure I followed to finally complete a successful transfer is as follows:
First I used PHPmyadmin on the old SME10 server and selected each of my user created databases and used the Export command. This downloaded an SQL file named with the database name.
Next I modified the the /usr/bin/migratehelper.sh script. Find the exclude files list and be sure to add
/home/e-smith/db/mysql to the list to make sure the backup created by the script does not include SQL files that you do not want to overwrite. By the way, I would suggest using nano to edit the script and not vim as suggested in the instructions. I had to do a hard restart on the SME10 server when I tried to do the edit with vim because I could not get it to return to command mode to save and exit.
Once I finally had the script modified to prevent saving MySQL files I ran it and created a new backup on the USB disk as instructed in the documentation.
Since I knew that restoring the backup to the SME11 machine first would set the IP address for it to the same as that of the SME10 machine which would create an Ethernet conflict for the rsync instructions in the Migratehelper documentation, I performed the rsync instruction first. Then I logged in to the admin console on the SME11 machine and restored from the backup created by the modified Migratehelper script.
Next I used PHPmyadmin on the SME11 server to create each of the user databases that were on the old SME10 machine and then Imported the saved SQL files to each one. Make sure you have the correct database selected before you click the Import button as I accidentally imported one into the mysql database and had to redo the install of the SME11 server.
The final step was to use PHPmyadmin to recreate the users for each of my databases with the correct privileges and passwords so my test sites would be able to access them.
I finally had successfully copied the content from my old SME10 machine to the SME11 server and the test sites are working on the new server with minor tweaks needed.