Concrete5 DB migration is NOT possible.

Permalink
I wish that when people ask a question, that the people that answer give a right answer.

I was trying many times to migrate my concrete5 site from my development server to my hosting provider, and after following loads of instructions that FAILED big time, I came across the precise reason why it failed.

OK, this is what I see from people that answered that question on how do I migrate my site from one server to another? People would say to first empty the cache, export the DB using mysqldump to create an sql file ready for importing, then zip up the concrete5 files, then uncompress them on to the hosting provider,,,,create an empty DB, then using phpMyAdmin to import the previously created sql file into that DB, then edit the /applications/config/database.php file with the new DB information, but this is where it stops, what people dont say is:-

sql files are platform dependent, sql files imported from a Windows platform will NOT work on a Linux platform, simply because Linux is case sensitive meaning I can create 25 tables of the same name but with each letter as uppercase, and Linux treats those names as individual, whereas Windows with throw a fit if 2 tables use the same name, regardless of case,,,,,so,, therefore, when migrating a concrete5 site from one platform to the another, make sure that the platforms are identical,,,, IE, migrate from Windows to Windows, or Linux to Linux, or Linux to Windows, but in no way can a windows created DB dump be imported to a Linux DB, especially in the case of Concrete5 which uses a mixture of DB tables that have uppercase/lowercase letters, and windows exports with lowercase table names. To check this out, compare a Windows sql dump to a Linux sql dump, and pay particular attention to the table names and how they're spelled.

This 'extra' information should have been told first and foremost before going through the procedures for migration.

 
Gondwana replied on at Permalink Reply
Gondwana
Databases created on Windows can be transferred to linux without any problems, if you configure your Windows MySQL/MariaDB properly. I transferred five sites yesterday without a single hiccup. I think the my.ini line you're missing is
lower_case_table_names = 2
usalabs141 replied on at Permalink Reply
I did try placed directly under the section:-
[mysqld]

But the DB was already created way before that line was added therefore the tables names were all lowercase, and thus now is too late to migrate.

This information should also have been given in the C5 installation instructions to make sure that line is added before installing C5.

There are not many DB's that use a combination of uppercase and lowercase table names, specifically for the reason of compatibility.

Over the years I have migrated DB's from e107, bitweaver, drupal, wordpress, and phpnuke and none of them had the problems that C5 has with table names.
Gondwana replied on at Permalink Reply
Gondwana
There are scripts around that may fix your borked database, but I gather you've made your mind up.
usalabs141 replied on at Permalink Reply
I have, because of mis-information, I'm not going to re-build my website on the hosting provider from scratch,,,, and yes there are scripts around, but for a script to rename the tables precisely the way C5 has them named, takes something that's only on the C5 marketplace or forums and yes they do convert lowercase<->uppercase, but only and I say ONLY for the table names, but to make sure the DB is 100% Linux compatible, the constraints would also need renaming too, which those scripts and/or the addons don't do.

Check out this thread:-

https://www.concrete5.org/community/forums/installation/concrete5-8-...