Concrete5 8 Database Tables Name case sensitive

Permalink
Hello,

I've installed Concrete5 8 on a wamp machine and when I tried to move it to a linux production server, I realized that all table names where wrong (lower case instead of the camel case).

I've solve the issue with the following SQL script. Hope it can help some people out there:

RENAME TABLE areas TO Areas;
RENAME TABLE attributekeycategories TO AttributeKeyCategories;
RENAME TABLE attributekeys TO AttributeKeys;
RENAME TABLE attributesetkeys TO AttributeSetKeys;
RENAME TABLE attributesets TO AttributeSets;
RENAME TABLE attributetypecategories TO AttributeTypeCategories;
RENAME TABLE attributetypes TO AttributeTypes;
RENAME TABLE attributevalues TO AttributeValues;
RENAME TABLE blocktypes TO BlockTypes;
RENAME TABLE blocks TO Blocks;
RENAME TABLE collectionattributevalues TO CollectionAttributeValues;
RENAME TABLE collectionsearchindexattributes TO CollectionSearchIndexAttributes;
RENAME TABLE collectionversionareastyles TO CollectionVersionAreaStyles;
RENAME TABLE collectionversionblockstyles TO CollectionVersionBlockStyles;
RENAME TABLE collectionversionblocks TO CollectionVersionBlocks;
RENAME TABLE collectionversions TO CollectionVersions;
RENAME TABLE collections TO Collections;
RENAME TABLE config TO Config;
RENAME TABLE downloadstatistics TO DownloadStatistics;
RENAME TABLE fileattributevalues TO FileAttributeValues;
RENAME TABLE filepermissionfiletypes TO FilePermissionFileTypes;
RENAME TABLE filesearchindexattributes TO FileSearchIndexAttributes;
RENAME TABLE filesetfiles TO FileSetFiles;
RENAME TABLE filesets TO FileSets;
RENAME TABLE filestoragelocations TO FileStorageLocations;
RENAME TABLE fileversionlog TO FileVersionLog;
RENAME TABLE fileversions TO FileVersions;
RENAME TABLE files TO Files;
RENAME TABLE groups TO Groups;
RENAME TABLE jobs TO Jobs;
RENAME TABLE jobslog TO JobsLog;
RENAME TABLE logs TO Logs;
RENAME TABLE mailimporters TO MailImporters;
RENAME TABLE mailvalidationhashes TO MailValidationHashes;
RENAME TABLE packages TO Packages;
RENAME TABLE pagepaths TO PagePaths;
RENAME TABLE pagesearchindex TO PageSearchIndex;
RENAME TABLE pagethemes TO PageThemes;
RENAME TABLE pagetypes TO PageTypes;
RENAME TABLE pages TO Pages;
RENAME TABLE pilecontents TO PileContents;
RENAME TABLE piles TO Piles;
RENAME TABLE signuprequests TO SignupRequests;
RENAME TABLE userattributekeys TO UserAttributeKeys;
RENAME TABLE userattributevalues TO UserAttributeValues;
RENAME TABLE userbannedips TO UserBannedIPs;
RENAME TABLE usergroups TO UserGroups;
RENAME TABLE userprivatemessages TO UserPrivateMessages;
RENAME TABLE userprivatemessagesto TO UserPrivateMessagesTo;
RENAME TABLE usersearchindexattributes TO UserSearchIndexAttributes;
RENAME TABLE uservalidationhashes TO UserValidationHashes;
RENAME TABLE users TO Users;
RENAME TABLE arealayoutcolumns TO AreaLayoutColumns;
RENAME TABLE arealayoutcustomcolumns TO AreaLayoutCustomColumns;
RENAME TABLE arealayoutpresets TO AreaLayoutPresets;
RENAME TABLE arealayouts TO AreaLayouts;
RENAME TABLE arealayoutsusingpresets TO AreaLayoutsUsingPresets;
RENAME TABLE arealayoutthemegridcolumns TO AreaLayoutThemeGridColumns;
RENAME TABLE areapermissionassignments TO AreaPermissionAssignments;
RENAME TABLE areapermissionblocktypeaccesslist TO AreaPermissionBlockTypeAccessList;
RENAME TABLE areapermissionblocktypeaccesslistcustom TO AreaPermissionBlockTypeAccessListCustom;
RENAME TABLE ataddress TO atAddress;
RENAME TABLE ataddresssettings TO atAddressSettings;
RENAME TABLE atboolean TO atBoolean;
RENAME TABLE atbooleansettings TO atBooleanSettings;
RENAME TABLE atdatetime TO atDateTime;
RENAME TABLE atdatetimesettings TO atDateTimeSettings;
RENAME TABLE atdefault TO atDefault;
RENAME TABLE atfile TO atFile;
RENAME TABLE atnumber TO atNumber;
RENAME TABLE atselectoptions TO atSelectOptions;
RENAME TABLE atselectoptionsselected TO atSelectOptionsSelected;
RENAME TABLE atselectsettings TO atSelectSettings;
RENAME TABLE attextareasettings TO atTextareaSettings;
RENAME TABLE atemptysettings TO atEmptySettings;
RENAME TABLE atexpress TO atExpress;
RENAME TABLE atexpressselectedentries TO atExpressSelectedEntries;
RENAME TABLE atexpresssettings TO atExpressSettings;
RENAME TABLE atfilesettings TO atFileSettings;
RENAME TABLE atselect TO atSelect;
RENAME TABLE atselectedsociallinks TO atSelectedSocialLinks;
RENAME TABLE atselectedtopics TO atSelectedTopics;
RENAME TABLE atselectoptionlists TO atSelectOptionLists;
RENAME TABLE atsociallinks TO atSocialLinks;
RENAME TABLE attextsettings TO atTextSettings;
RENAME TABLE attopic TO atTopic;
RENAME TABLE attopicsettings TO atTopicSettings;
RENAME TABLE authenticationtypes TO AuthenticationTypes;
RENAME TABLE authtypeconcretecookiemap TO authTypeConcreteCookieMap;
RENAME TABLE bannedwords TO BannedWords;
RENAME TABLE basicworkflowpermissionassignments TO BasicWorkflowPermissionAssignments;
RENAME TABLE basicworkflowprogressdata TO BasicWorkflowProgressData;
RENAME TABLE blockfeatureassignments TO BlockFeatureAssignments;
RENAME TABLE blockpermissionassignments TO BlockPermissionAssignments;
RENAME TABLE blocktypepermissionblocktypeaccesslist TO BlockTypePermissionBlockTypeAccessList;
RENAME TABLE blocktypepermissionblocktypeaccesslistcustom TO BlockTypePermissionBlockTypeAccessListCustom;
RENAME TABLE blocktypesetblocktypes TO BlockTypeSetBlockTypes;
RENAME TABLE blocktypesets TO BlockTypeSets;
RENAME TABLE btcontentfile TO btContentFile;
RENAME TABLE btcontentimage TO btContentImage;
RENAME TABLE btcontentlocal TO btContentLocal;
RENAME TABLE btexternalform TO btExternalForm;
RENAME TABLE btform TO btForm;
RENAME TABLE btformanswerset TO btFormAnswerSet;
RENAME TABLE btformanswers TO btFormAnswers;
RENAME TABLE btformquestions TO btFormQuestions;
RENAME TABLE btgooglemap TO btGoogleMap;
RENAME TABLE btnavigation TO btNavigation;
RENAME TABLE btpagelist TO btPageList;
RENAME TABLE btrssdisplay TO btRssDisplay;
RENAME TABLE btsearch TO btSearch;
RENAME TABLE btsurvey TO btSurvey;
RENAME TABLE btsurveyoptions TO btSurveyOptions;
RENAME TABLE btsurveyresults TO btSurveyResults;
RENAME TABLE btvideo TO btVideo;
RENAME TABLE btyoutube TO btYouTube;
RENAME TABLE btcorearealayout TO btCoreAreaLayout;
RENAME TABLE btcoreconversation TO btCoreConversation;
RENAME TABLE btcorepagetypecomposercontroloutput TO btCorePageTypeComposerControlOutput;
RENAME TABLE btcorescrapbookdisplay TO btCoreScrapbookDisplay;
RENAME TABLE btcorestackdisplay TO btCoreStackDisplay;
RENAME TABLE btdatenavigation TO btDateNavigation;
RENAME TABLE btdesktopnewsflowlatest TO btDesktopNewsflowLatest;
RENAME TABLE btdesktopsiteactivity TO btDesktopSiteActivity;
RENAME TABLE btexpressentrydetail TO btExpressEntryDetail;
RENAME TABLE btexpressentrylist TO btExpressEntryList;
RENAME TABLE btexpressform TO btExpressForm;
RENAME TABLE btfaq TO btFaq;
RENAME TABLE btfaqentries TO btFaqEntries;
RENAME TABLE btfeature TO btFeature;
RENAME TABLE btimageslider TO btImageSlider;
RENAME TABLE btimagesliderentries TO btImageSliderEntries;
RENAME TABLE btnextprevious TO btNextPrevious;
RENAME TABLE btpageattributedisplay TO btPageAttributeDisplay;
RENAME TABLE btpagetitle TO btPageTitle;
RENAME TABLE btsharethispage TO btShareThisPage;
RENAME TABLE btsociallinks TO btSocialLinks;
RENAME TABLE btswitchlanguage TO btSwitchLanguage;
RENAME TABLE bttags TO btTags;
RENAME TABLE bttestimonial TO btTestimonial;
RENAME TABLE bttopiclist TO btTopicList;
RENAME TABLE collectionattributekeys TO CollectionAttributeKeys;
RENAME TABLE collectionversionblockscachesettings TO CollectionVersionBlocksCacheSettings;
RENAME TABLE collectionversionblocksoutputcache TO CollectionVersionBlocksOutputCache;
RENAME TABLE collectionversionfeatureassignments TO CollectionVersionFeatureAssignments;
RENAME TABLE collectionversionrelatededits TO CollectionVersionRelatedEdits;
RENAME TABLE collectionversionthemecustomstyles TO CollectionVersionThemeCustomStyles;
RENAME TABLE configstore TO ConfigStore;
RENAME TABLE conversationdiscussions TO ConversationDiscussions;
RENAME TABLE conversationeditors TO ConversationEditors;
RENAME TABLE conversationfeaturedetailassignments TO ConversationFeatureDetailAssignments;
RENAME TABLE conversationflaggedmessages TO ConversationFlaggedMessages;
RENAME TABLE conversationflaggedmessagetypes TO ConversationFlaggedMessageTypes;
RENAME TABLE conversationmessageattachments TO ConversationMessageAttachments;
RENAME TABLE conversationmessagenotifications TO ConversationMessageNotifications;
RENAME TABLE conversationmessageratings TO ConversationMessageRatings;
RENAME TABLE conversationmessages TO ConversationMessages;
RENAME TABLE conversationpermissionaddmessageaccesslist TO ConversationPermissionAddMessageAccessList;
RENAME TABLE conversationpermissionassignments TO ConversationPermissionAssignments;
RENAME TABLE conversationratingtypes TO ConversationRatingTypes;
RENAME TABLE conversations TO Conversations;
RENAME TABLE conversationsubscriptions TO ConversationSubscriptions;
RENAME TABLE expressattributekeys TO ExpressAttributeKeys;
RENAME TABLE expressentities TO ExpressEntities;
RENAME TABLE expressentityassociations TO ExpressEntityAssociations;
RENAME TABLE expressentityassociationselectedentries TO ExpressEntityAssociationSelectedEntries;
RENAME TABLE expressentityentries TO ExpressEntityEntries;
RENAME TABLE expressentityentryassociations TO ExpressEntityEntryAssociations;
RENAME TABLE expressentityentryattributevalues TO ExpressEntityEntryAttributeValues;
RENAME TABLE expressformfieldsetassociationcontrols TO ExpressFormFieldSetAssociationControls;
RENAME TABLE expressformfieldsetattributekeycontrols TO ExpressFormFieldSetAttributeKeyControls;
RENAME TABLE expressformfieldsetcontrols TO ExpressFormFieldSetControls;
RENAME TABLE expressformfieldsets TO ExpressFormFieldSets;
RENAME TABLE expressformfieldsettextcontrols TO ExpressFormFieldSetTextControls;
RENAME TABLE expressforms TO ExpressForms;
RENAME TABLE featureassignments TO FeatureAssignments;
RENAME TABLE featurecategories TO FeatureCategories;
RENAME TABLE features TO Features;
RENAME TABLE fileattributekeys TO FileAttributeKeys;
RENAME TABLE fileimagethumbnailpaths TO FileImageThumbnailPaths;
RENAME TABLE fileimagethumbnailtypes TO FileImageThumbnailTypes;
RENAME TABLE filepermissionassignments TO FilePermissionAssignments;
RENAME TABLE filepermissionfiletypeaccesslist TO FilePermissionFileTypeAccessList;
RENAME TABLE filepermissionfiletypeaccesslistcustom TO FilePermissionFileTypeAccessListCustom;
RENAME TABLE filesetsavedsearches TO FileSetSavedSearches;
RENAME TABLE filestoragelocationtypes TO FileStorageLocationTypes;
RENAME TABLE fileusagerecord TO FileUsageRecord;
RENAME TABLE gapage TO gaPage;
RENAME TABLE gatheringconfigureddatasources TO GatheringConfiguredDataSources;
RENAME TABLE gatheringdatasources TO GatheringDataSources;
RENAME TABLE gatheringitemfeatureassignments TO GatheringItemFeatureAssignments;
RENAME TABLE gatheringitems TO GatheringItems;
RENAME TABLE gatheringitemselectedtemplates TO GatheringItemSelectedTemplates;
RENAME TABLE gatheringitemtemplatefeatures TO GatheringItemTemplateFeatures;
RENAME TABLE gatheringitemtemplates TO GatheringItemTemplates;
RENAME TABLE gatheringitemtemplatetypes TO GatheringItemTemplateTypes;
RENAME TABLE gatheringpermissionassignments TO GatheringPermissionAssignments;
RENAME TABLE gatherings TO Gatherings;
RENAME TABLE groupsetgroups TO GroupSetGroups;
RENAME TABLE groupsets TO GroupSets;
RENAME TABLE jobsetjobs TO JobSetJobs;
RENAME TABLE jobsets TO JobSets;
RENAME TABLE legacyattributekeys TO LegacyAttributeKeys;
RENAME TABLE multilingualpagerelations TO MultilingualPageRelations;
RENAME TABLE multilingualtranslations TO MultilingualTranslations;
RENAME TABLE notificationalerts TO NotificationAlerts;
RENAME TABLE notificationpermissionsubscriptionlist TO NotificationPermissionSubscriptionList;
RENAME TABLE notificationpermissionsubscriptionlistcustom TO NotificationPermissionSubscriptionListCustom;
RENAME TABLE notifications TO Notifications;
RENAME TABLE oauthusermap TO OauthUserMap;
RENAME TABLE pagefeeds TO PageFeeds;
RENAME TABLE pagepermissionassignments TO PagePermissionAssignments;
RENAME TABLE pagepermissionpagetypeaccesslist TO PagePermissionPageTypeAccessList;
RENAME TABLE pagepermissionpagetypeaccesslistcustom TO PagePermissionPageTypeAccessListCustom;
RENAME TABLE pagepermissionpropertyaccesslist TO PagePermissionPropertyAccessList;
RENAME TABLE pagepermissionpropertyattributeaccesslistcustom TO PagePermissionPropertyAttributeAccessListCustom;
RENAME TABLE pagepermissionthemeaccesslist TO PagePermissionThemeAccessList;
RENAME TABLE pagepermissionthemeaccesslistcustom TO PagePermissionThemeAccessListCustom;
RENAME TABLE pagetemplates TO PageTemplates;
RENAME TABLE pagethemecustomstyles TO PageThemeCustomStyles;
RENAME TABLE pagetypecomposercontroltypes TO PageTypeComposerControlTypes;
RENAME TABLE pagetypecomposerformlayoutsetcontrols TO PageTypeComposerFormLayoutSetControls;
RENAME TABLE pagetypecomposerformlayoutsets TO PageTypeComposerFormLayoutSets;
RENAME TABLE pagetypecomposeroutputblocks TO PageTypeComposerOutputBlocks;
RENAME TABLE pagetypecomposeroutputcontrols TO PageTypeComposerOutputControls;
RENAME TABLE pagetypepagetemplatedefaultpages TO PageTypePageTemplateDefaultPages;
RENAME TABLE pagetypepagetemplates TO PageTypePageTemplates;
RENAME TABLE pagetypepermissionassignments TO PageTypePermissionAssignments;
RENAME TABLE pagetypepublishtargettypes TO PageTypePublishTargetTypes;
RENAME TABLE pageworkflowprogress TO PageWorkflowProgress;
RENAME TABLE permissionaccess TO PermissionAccess;
RENAME TABLE permissionaccessentities TO PermissionAccessEntities;
RENAME TABLE permissionaccessentitygroups TO PermissionAccessEntityGroups;
RENAME TABLE permissionaccessentitygroupsets TO PermissionAccessEntityGroupSets;
RENAME TABLE permissionaccessentitytypecategories TO PermissionAccessEntityTypeCategories;
RENAME TABLE permissionaccessentitytypes TO PermissionAccessEntityTypes;
RENAME TABLE permissionaccessentityusers TO PermissionAccessEntityUsers;
RENAME TABLE permissionaccesslist TO PermissionAccessList;
RENAME TABLE permissionaccessworkflows TO PermissionAccessWorkflows;
RENAME TABLE permissionassignments TO PermissionAssignments;
RENAME TABLE permissiondurationobjects TO PermissionDurationObjects;
RENAME TABLE permissionkeycategories TO PermissionKeyCategories;
RENAME TABLE permissionkeys TO PermissionKeys;
RENAME TABLE privatemessagenotifications TO PrivateMessageNotifications;
RENAME TABLE queuemessages TO QueueMessages;
RENAME TABLE queuepageduplicationrelations TO QueuePageDuplicationRelations;
RENAME TABLE queues TO Queues;
RENAME TABLE savedfilesearchqueries TO SavedFileSearchQueries;
RENAME TABLE savedpagesearchqueries TO SavedPageSearchQueries;
RENAME TABLE savedusersearchqueries TO SavedUserSearchQueries;
RENAME TABLE sessions TO Sessions;
RENAME TABLE siblingpagerelations TO SiblingPageRelations;
RENAME TABLE siteattributekeys TO SiteAttributeKeys;
RENAME TABLE siteattributevalues TO SiteAttributeValues;
RENAME TABLE sitelocales TO SiteLocales;
RENAME TABLE sites TO Sites;
RENAME TABLE sitesearchindexattributes TO SiteSearchIndexAttributes;
RENAME TABLE sitetrees TO SiteTrees;
RENAME TABLE sitetreetrees TO SiteTreeTrees;
RENAME TABLE sitetypes TO SiteTypes;
RENAME TABLE sociallinks TO SocialLinks;
RENAME TABLE stacks TO Stacks;
RENAME TABLE stackusagerecord TO StackUsageRecord;
RENAME TABLE stylecustomizercustomcssrecords TO StyleCustomizerCustomCssRecords;
RENAME TABLE stylecustomizerinlinestylepresets TO StyleCustomizerInlineStylePresets;
RENAME TABLE stylecustomizerinlinestylesets TO StyleCustomizerInlineStyleSets;
RENAME TABLE stylecustomizervaluelists TO StyleCustomizerValueLists;
RENAME TABLE stylecustomizervalues TO StyleCustomizerValues;
RENAME TABLE systemantispamlibraries TO SystemAntispamLibraries;
RENAME TABLE systemcaptchalibraries TO SystemCaptchaLibraries;
RENAME TABLE systemcontenteditorsnippets TO SystemContentEditorSnippets;
RENAME TABLE systemdatabasemigrations TO SystemDatabaseMigrations;
RENAME TABLE systemdatabasequerylog TO SystemDatabaseQueryLog;
RENAME TABLE topictrees TO TopicTrees;
RENAME TABLE treefilenodes TO TreeFileNodes;
RENAME TABLE treegroupnodes TO TreeGroupNodes;
RENAME TABLE treenodepermissionassignments TO TreeNodePermissionAssignments;
RENAME TABLE treenodes TO TreeNodes;
RENAME TABLE treenodetypes TO TreeNodeTypes;
RENAME TABLE trees TO Trees;
RENAME TABLE treesearchquerynodes TO TreeSearchQueryNodes;
RENAME TABLE treetypes TO TreeTypes;
RENAME TABLE userpermissioneditpropertyaccesslist TO UserPermissionEditPropertyAccessList;
RENAME TABLE userpermissioneditpropertyattributeaccesslistcustom TO UserPermissionEditPropertyAttributeAccessListCustom;
RENAME TABLE userpermissionviewattributeaccesslist TO UserPermissionViewAttributeAccessList;
RENAME TABLE userpermissionviewattributeaccesslistcustom TO UserPermissionViewAttributeAccessListCustom;
RENAME TABLE userpointactions TO UserPointActions;
RENAME TABLE userpointhistory TO UserPointHistory;
RENAME TABLE usersignupnotifications TO UserSignupNotifications;
RENAME TABLE usersignups TO UserSignups;
RENAME TABLE userworkflowprogress TO UserWorkflowProgress;
RENAME TABLE workflowprogress TO WorkflowProgress;
RENAME TABLE workflowprogresscategories TO WorkflowProgressCategories;
RENAME TABLE workflowprogresshistory TO WorkflowProgressHistory;
RENAME TABLE workflowprogressnotifications TO WorkflowProgressNotifications;
RENAME TABLE workflowrequestobjects TO WorkflowRequestObjects;
RENAME TABLE workflows TO Workflows;
RENAME TABLE workflowtypes TO WorkflowTypes;

 
OKDnet replied on at Permalink Reply
OKDnet
The Database Migration free add-on handles this situation (and in either direction)
https://www.concrete5.org/marketplace/addons/database-migration...

This isn't unique to version 8. In fact, it's been the same since legacy.
HarryVienna replied on at Permalink Reply
HarryVienna
Hello,

You can force MySQL even in Windows to use case sensitive table names:

http://stackoverflow.com/questions/6248735/how-to-force-case-sensit...

BUT
I made a migration from C5 5.7 to 5.8 using XAMPP in Windows. At the first glance, it worked fine and the website looked ok. So I copied everything back to my Linux server. Problems came, when I started to edit pages, attributes and so on. I got strange contraint errors. The problem was, that although the table names were correct, the constraints were still in lowser case. The solution was to edit the MySQL dump and rename all constraints to match the case sensitive table names. Now everythings seems to work fine...

Cheers
Harald
OKDnet replied on at Permalink Reply
OKDnet
Good to know about the constraints if wanting to rely on forcing case sensitive table names. I wonder if @ramonleenders Migration tool handles the constraints as well.
OKDnet replied on at Permalink Reply
OKDnet
I asked Ramon about the add-on and constraints. Here's what he said.

"This only handles table names. I'm not sure if it's possible to handle constraints too within the plugin though. Since it's a free product, I'd be happy if someone came with a solution for that."
Cocolabaloune replied on at Permalink Reply
Yes I was aware of the addon, but I've share the script in case someone wanted to do it manually (like in my case).

It's a good thing to know that the constraints may have this isue also. In my case I was fine, but I might generate another migration script if some people need it.
stewblack23 replied on at Permalink Reply
stewblack23
Just what I was looking for. Been going crazy trying to get my client site to work on my test environment.
stewblack23 replied on at Permalink Reply
stewblack23
This was a great help. I still had to rename some of the tables by hand, but the process did not take long. I tried using the plugin for creating uppercase table names. But it did not work for me. Is there anyway in my localhost environment to force uppercase table names?
lyc replied on at Permalink Reply
Maybe your are just using the latest 8.2 version : https://www.concrete5.org/community/forums/installation/db-migrating...