Move from XAMPP Development Server to Live Server, case sensitiv mysql

Permalink 1 user found helpful
Hi Folks,

I'm running into to a problem with moving my site from a local development platform to a live site. Here is what I done:

1. Copy all C5 Files from local to the webspace
2. Backup local database to a sql script and imported the file on the webspace(BUT before I had to change all the Table Names manual from lower case to Mixed case, because I run on a XAMPP Windows server and the unix server from my hoster just recognize the mixed case table names)
3. So far the site was working, but in the dashboard there are some tings missing:

- The filemanager is not working but I do not get any error, it just show nothing
- Page and themes is not working, just not showing content on the page when I click there
- Maintenance is not woring, just shows no content when I click the button

It seams the mysql case sensitive stuff has to do something with this. When I start a fresh installation on the webspace everything works fine. But I have a lot of content already in my page on the test server, and I don't want to start from scratch again.
I tried a lot so far, but the dashboard is not working completely so far.
My local installation is running. I also imported the sql file backup where I changed the table names manual into my local system. It is still working properly. It shows all pages from the dashboard correctly.

Maybe there is a easy solution for this.

Thanks in advance for any reply.

foxi

View Replies: View Best Answer
evanadelman replied on at Permalink Reply
I just ran across a very similar scenario in migrating a site from an OSX xampp dev environ to a ubunutu linux production environ. I initially tried to rename tables such as "Config" to "config" but quickly realised this was not going to be the way forward. But I found my mysql config and added the line:
lower_case_table_names=1
as per these instructions:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity....

I wonder if this could be solved by concrete5 devs doing a refactoring for case-sensitive mismatches between table names & db calls in future releases? Not everyone has access to their mysql config...
dfuchs2512 replied on at Permalink Reply
I'm not sure if this is something related to the concrete5 devs. But you are right that not everybody got access to the servers. Especialy if the production server is wrong configured. To tell the provider to change values for the settinmgs is not going to work.

I found the value on my local system as well to change from lower case to mixed case table names. But this helps just for new projects and not for the existing one. At the end I started from scratch and moved all the content to a new Concrete5 installation.
kazoostudios replied on at Permalink Reply
kazoostudios
I just ran into this problem. Bleah.

If not XAMPP what is the recommended localhost setup for C5 development on Windows?
katz515 replied on at Permalink Best Answer Reply
katz515
Japanese team made the following SQL commands for 5.3.2.

So you have to add tables for 5.4.0

Run the following command under MySQL command line or phpMyAdmin.

Then you can make all table case sensitive.

NOTE: you must run the following commands AFTER you change the MySQL config


ALTER TABLE `areagroupblocktypes` RENAME TO `AreaGroupBlockTypes`;
ALTER TABLE `areagroups` RENAME TO `AreaGroups`;
ALTER TABLE `areas` RENAME TO `Areas`;
ALTER TABLE `blockrelations` RENAME TO `BlockRelations`;
ALTER TABLE `blocks` RENAME TO `Blocks`;
ALTER TABLE `blocktypes` RENAME TO `BlockTypes`;
ALTER TABLE `btcontentfile` RENAME TO `btContentFile`;
ALTER TABLE `btcontentimage` RENAME TO `btContentImage`;
ALTER TABLE `btcontentlocal` RENAME TO `btContentLocal`;
ALTER TABLE `btexternalform` RENAME TO `btExternalForm`;
ALTER TABLE `btflashcontent` RENAME TO `btFlashContent`;
ALTER TABLE `btform` RENAME TO `btForm`;
ALTER TABLE `btformanswers` RENAME TO `btFormAnswers`;
ALTER TABLE `btformanswerset` RENAME TO `btFormAnswerSet`;
ALTER TABLE `btformquestions` RENAME TO `btFormQuestions`;
garyjhills replied on at Permalink Reply
garyjhills
So where is the mysql config file to be able to sort this one out? the instructions that the previous post said are not clear enough.
evanadelman replied on at Permalink Reply
on my Ubuntu 10.10 servers running MySQL 5.1, the MySQL config file is located here: /etc/mysql/my.cnf
But MySQL configuration and associated files vary system to system and version to version - which is why I pointed toward the MySQL docs instead of putting specific instructions here.
sabumnimdk replied on at Permalink Reply
sabumnimdk
Hi Gary

In order to have mysql change the "lower_case_table_names=1" to "lower_case_table_names=0", I found the "my.ini" file located here:
C:\xampp\mysql\bin\my.ini

I am running xampp on a windows7 platform.

When opening the "my.ini" file located in the "bin" I went to line to line 28 in that particular file.
It should say something like [mysqld].

Here is where I made the change:

# The following options will be passed to all MySQL clients
[client]
#user       = your_username
#password   = your_password
host        = .
port      = 3306
socket      = "MySQL"
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
basedir                 = "C:/xampp/mysql/"
datadir                 = "C:/xampp/mysql/data/"


and the change is here:

# The following options will be passed to all MySQL clients
[client]
#user       = your_username
#password   = your_password
host        = .
port      = 3306
socket      = "MySQL"
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
lower_case_table_names  = 0
basedir                 = "C:/xampp/mysql/"
datadir                 = "C:/xampp/mysql/data/"


After this minor operation I shut down apache, php and mysql, and restarted the whole thing, ran the installation of C5 locally and behold, the table names were not changed. So the insertion worked.

Hope this helps

//Carsten
mixedpixel replied on at Permalink Reply
mixedpixel
thematysek replied on at Permalink Reply
Easy fix by running SQL commands can be found here:
http://www.concrete5.org/community/forums/installation/uncaught_exc...
There's full table list of concrete5 version 6.0.2. (posted on Apr 24, 2013).
chris03 replied on at Permalink Reply
chris03
Had the same problem with 5.7 and no script was available.

Instead of manually creating a SQL script or changing the table names, I made a PHP script that get the original table names from the config files (db.xml) and the it creates the SQL script to change the table names.

Script is here:
https://gist.github.com/chris03/af05e345bedf254fded5......

Note that when running with phpMyAdmin, you should temporary enable: Settings -> SQL Queries -> Ignore multiple statement errors

And once done, check the table names, a few tables might not have been renamed.

Enjoy
erminos replied on at Permalink Reply
Hi, where do you put the php file?
MrKDilkington replied on at Permalink Reply
MrKDilkington
Hi erminos,

If you are looking to change the case of your database tables, there are two add-ons that are available to assist you.

5.6
https://www.concrete5.org/marketplace/addons/database-case-sensitivi...
5.7
https://www.concrete5.org/marketplace/addons/database-migration/...