Migrating a Concrete5 Site from Windows to Linux, and MySQL Case Sensitivity Hell

21stOctober 2011 | Tags:

If, like me, you often develop on a Windows platform and then host using a *Nix-based server, Concrete5 has a gotcha which will probably hit you when you come to publish your site. At some point no doubt you'll reach the point where you've copied the codebase to your server, created a database dump and imported it into the MySQL instance on your *Nix-based server. Try browsing to your site at this point, though, and you'll get a message a lot like this:

Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysql error: [1146: Table 'mysite.Config' doesn't exist] in EXECUTE("select * from Config where uID = 0 order by cfKey asc") ' in /var/www/mysite/htdocs/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php:78 Stack trace: #0 /var/www/mysite/htdocs/concrete/libraries/3rdparty/adodb/adodb.inc.php(1037): adodb_throw('mysql', 'EXECUTE', 1146, 'Table 'mysite...', 'select * from C...', false, Object(ADODB_mysql)) #1 /var/www/mysite/htdocs/concrete/libraries/3rdparty/adodb/adodb.inc.php(1012): ADOConnection->_Execute('select * from C...', false) #2 /var/www/mysite/htdocs/concrete/libraries/database.php(75): ADOConnection->Execute('select * from C...') #3 /var/www/mysite/htdocs/concrete/models/config.php(151): Database->__call('Execute', Array) #4 /var/www/mysite/htdocs/concrete/models/config.php(151): Database->Execute('select * from C...') #5 /var/www/mysite in /var/www/mysite/htdocs/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php on line 78

The reason for this is simple - although it might not be apparent. Concrete5 uses CamelCase table names such as BlockTypes, CollectionAttributeValues and FileSearchIndexAttributes. As soon as you install Concrete5 on Windows (under a default configuration) these table names are converted to lowercase - so in those specific examples, you'll get table names such as blocktypes, collectionattributevalues and filesearchindexattributes. On Windows, MySQL table names are not case sensitive, but it's set up such that rather than ignore capitalisation, it does away with it altogether. Linux and Unix on the other hand, are case sensitive and so in this instance, the table Config can't be found because you'll have unwittingly imported the table config - and you have Windows to thank. There is an option in MySQL which allows you to turn off this feature of converting table names to lowercase. In your my.ini, adding or amending the line: set-variable=lower_case_table_names=0 However, the MySQL documentation reccomends that this value be set to 1 if you're using InnoDB. Also bear in mind that changing this value will only affect newly created tables. You would of course find that this method is useless if you find yourself in the situation above, as the conversion has already been done. Your best option, therefore, is to convert the table names on your *Nix database sever back to CamelCase. To do so you can run the following SQL script (it's based on Concrete5, and do bear in mind that any tables created by third-party add-ons won't be included):

RENAME TABLE areagroupblocktypes TO AreaGroupBlockTypes; 
RENAME TABLE areagroups TO AreaGroups; 
RENAME TABLE areas TO Areas; 
RENAME TABLE atdefault TO atDefault;
RENAME TABLE attributesetkeys TO AttributeSetKeys; 
RENAME TABLE attributesets TO AttributeSets; 
RENAME TABLE attributekeys TO AttributeKeys; 
RENAME TABLE attributekeycategories TO AttributeKeyCategories; 
RENAME TABLE attributetypecategories TO AttributeTypeCategories; 
RENAME TABLE attributetypes TO AttributeTypes; 
RENAME TABLE attributevalues TO AttributeValues; 
RENAME TABLE blockrelations TO BlockRelations; 
RENAME TABLE blocktypes TO BlockTypes; 
RENAME TABLE blocks TO Blocks; 
RENAME TABLE collectionattributevalues TO CollectionAttributeValues; 
RENAME TABLE collectionversionblockpermissions TO CollectionVersionBlockPermissions; 
RENAME TABLE collectionversionblocks TO CollectionVersionBlocks; 
RENAME TABLE collectionversionblockstyles TO CollectionVersionBlockStyles; 
RENAME TABLE collectionversionarealayouts TO CollectionVersionAreaLayouts; 
RENAME TABLE collectionversionareastyles TO CollectionVersionAreaStyles; 
RENAME TABLE collectionversions TO CollectionVersions; 
RENAME TABLE collections TO Collections; 
RENAME TABLE composercontentlayout TO ComposerContentLayout;
RENAME TABLE composerdrafts TO ComposerDrafts;
RENAME TABLE composertypes TO ComposerTypes;
RENAME TABLE config TO Config; 
RENAME TABLE dashboardhomepage TO DashboardHomepage; 
RENAME TABLE downloadstatistics TO DownloadStatistics; 
RENAME TABLE fileattributevalues TO FileAttributeValues; 
RENAME TABLE filepermissionfiletypes TO FilePermissionFileTypes; 
RENAME TABLE customstylepresets TO CustomStylePresets; 
RENAME TABLE customstylerules TO CustomStyleRules; 
RENAME TABLE filepermissions TO FilePermissions; 
RENAME TABLE taskpermissionusergroups TO TaskPermissionUserGroups; 
RENAME TABLE taskpermissions TO TaskPermissions; 
RENAME TABLE filesetpermissions TO FileSetPermissions; 
RENAME TABLE fileversions TO FileVersions; 
RENAME TABLE fileversionlog TO FileVersionLog; 
RENAME TABLE filestoragelocations TO FileStorageLocations; 
RENAME TABLE files TO Files; 
RENAME TABLE groups TO Groups; 
RENAME TABLE jobslog TO JobsLog; 
RENAME TABLE layouts TO Layouts; 
RENAME TABLE layoutpresets TO LayoutPresets; 
RENAME TABLE systemnotifications TO SystemNotifications; 
RENAME TABLE packages TO Packages; 
RENAME TABLE pagepaths TO PagePaths; 
RENAME TABLE pagesearchindex TO PageSearchIndex; 
RENAME TABLE pagepermissionpagetypes TO PagePermissionPageTypes; 
RENAME TABLE pagepermissions TO PagePermissions; 
RENAME TABLE pagestatistics TO PageStatistics; 
RENAME TABLE pagethemes TO PageThemes; 
RENAME TABLE pagethemestyles TO PageThemeStyles; 
RENAME TABLE pagetypeattributes TO PageTypeAttributes; 
RENAME TABLE pagetypes TO PageTypes; 
RENAME TABLE pages TO Pages; 
RENAME TABLE pilecontents TO PileContents; 
RENAME TABLE piles TO Piles; 
RENAME TABLE userattributekeys TO UserAttributeKeys; 
RENAME TABLE userattributevalues TO UserAttributeValues; 
RENAME TABLE userprivatemessages TO UserPrivateMessages; 
RENAME TABLE userprivatemessagesto TO UserPrivateMessagesTo; 
RENAME TABLE userbannedips TO UserBannedIPs; 
RENAME TABLE usergroups TO UserGroups; 
RENAME TABLE uservalidationhashes TO UserValidationHashes; 
RENAME TABLE mailimporters TO MailImporters; 
RENAME TABLE mailvalidationhashes TO MailValidationHashes; 
RENAME TABLE useropenids TO UserOpenIDs; 
RENAME TABLE users TO Users; 
RENAME TABLE usersfriends TO UsersFriends; 
RENAME TABLE signuprequests TO SignupRequests; 
RENAME TABLE filesets TO FileSets; 
RENAME TABLE filesetsavedsearches TO FileSetSavedSearches; 
RENAME TABLE filesetfiles TO FileSetFiles; 
RENAME TABLE atboolean TO atBoolean; 
RENAME TABLE atbooleansettings TO atBooleanSettings; 
RENAME TABLE atdatetimesettings TO atDateTimeSettings; 
RENAME TABLE atdatetime TO atDateTime; 
RENAME TABLE atfile TO atFile; 
RENAME TABLE atnumber TO atNumber; 
RENAME TABLE atselectsettings TO atSelectSettings; 
RENAME TABLE attextareasettings TO atTextareaSettings; 
RENAME TABLE atselectoptions TO atSelectOptions; 
RENAME TABLE atselectoptionsselected TO atSelectOptionsSelected; 
RENAME TABLE ataddress TO atAddress; 
RENAME TABLE ataddresscustomcountries TO atAddressCustomCountries; 
RENAME TABLE ataddresssettings TO atAddressSettings; 
RENAME TABLE btnavigation TO btNavigation; 
RENAME TABLE btdatenav TO btDateNav; 
RENAME TABLE btexternalform TO btExternalForm; 
RENAME TABLE btcontentfile TO btContentFile; 
RENAME TABLE btflashcontent TO btFlashContent; 
RENAME TABLE btform TO btForm; 
RENAME TABLE btformquestions TO btFormQuestions; 
RENAME TABLE btformanswerset TO btFormAnswerSet; 
RENAME TABLE btformanswers TO btFormAnswers; 
RENAME TABLE btgooglemap TO btGoogleMap; 
RENAME TABLE btguestbook TO btGuestBook; 
RENAME TABLE btguestbookentries TO btGuestBookEntries; 
RENAME TABLE btcontentlocal TO btContentLocal; 
RENAME TABLE btcontentimage TO btContentImage; 
RENAME TABLE btfile TO btFile; 
RENAME TABLE btnextprevious TO btNextPrevious; 
RENAME TABLE btpagelist TO btPageList; 
RENAME TABLE btrssdisplay TO btRssDisplay; 
RENAME TABLE btsearch TO btSearch; 
RENAME TABLE btslideshow TO btSlideshow; 
RENAME TABLE btslideshowimg TO btSlideshowImg; 
RENAME TABLE btsurvey TO btSurvey; 
RENAME TABLE btsurveyoptions TO btSurveyOptions; 
RENAME TABLE btsurveyresults TO btSurveyResults; 
RENAME TABLE bttags TO btTags; 
RENAME TABLE btvideo TO btVideo; 
RENAME TABLE btyoutube TO btYouTube; 
RENAME TABLE collectionsearchindexattributes TO CollectionSearchIndexAttributes; 
RENAME TABLE filesearchindexattributes TO FileSearchIndexAttributes; 
RENAME TABLE usersearchindexattributes TO UserSearchIndexAttributes;
RENAME TABLE btcorescrapbookdisplay TO btCoreScrapbookDisplay;
RENAME TABLE btcorestackdisplay TO btCoreStackDisplay;
RENAME TABLE btdashboardnewsflowlatest TO btDashboardNewsflowLatest;
RENAME TABLE collectionversionrelatededits TO CollectionVersionRelatedEdits;
RENAME TABLE stacks TO Stacks;
RENAME TABLE systemantispamlibraries TO SystemAntispamLibraries;
RENAME TABLE systemcaptchalibraries TO SystemCaptchaLibraries;


    Very helpful list of SQL Tables for Concrete5!
    Thanks - omarservice.co.uk

    15th November 2011

    Saved me a lot of time, thx. Here are the additional renames required for Concrete5 version 5.5:

    RENAME TABLE btcorescrapbookdisplay TO btCoreScrapbookDisplay;
    RENAME TABLE btcorestackdisplay TO btCoreStackDisplay;
    RENAME TABLE btdashboardnewsflowlatest TO btDashboardNewsflowLatest;
    RENAME TABLE collectionversionrelatededits TO CollectionVersionRelatedEdits;
    RENAME TABLE stacks TO Stacks;
    RENAME TABLE systemantispamlibraries TO SystemAntispamLibraries;
    RENAME TABLE systemcaptchalibraries TO SystemCaptchaLibraries;

    8th January 2012

    Thanks for those, Nic - I’ve added them to the script.

    13th January 2012
    Lukas White

    I just hope whoever writes these keeps wiirtng more!

    1st February 2012

    Tommy L - that looks perfect, thanks for bringing it to my attention. Makes this post somewhat irrelevant if it does what it says (which I’ve no reason to doubt!) - but that’s a good thing!

    Thanks again.

    10th February 2012
    Lukas White

    Thanks @Tommy. Saved me a great deal.

    16th February 2012

    Hi lukas, latest version of MySQL permit this setting under [mysqld] :
    [that is different from older version].
    I hope that is usefully for someone.
    See you on cyberspace!

    6th November 2012

    I worked hard to rename the existing lower case tables with data on Windows platform to import it into the Linux platform, and I’ve created the below scripts that would help everyone having Concrete5 version to rename their tables to be compatible with MySQL on Linux. Hopefully it will be useful. The script is as follows:

    ALTER TABLE areapermissionassignments RENAME AreaPermissionAssignments;
    ALTER TABLE areapermissionblocktypeaccesslist RENAME AreaPermissionBlockTypeAccessList;
    ALTER TABLE areapermissionblocktypeaccesslistcustom RENAME AreaPermissionBlockTypeAccessListCustom;
    ALTER TABLE areas RENAME Areas;
    ALTER TABLE ataddress RENAME atAddress;
    ALTER TABLE ataddresscustomcountries RENAME atAddressCustomCountries;
    ALTER TABLE ataddresssettings RENAME atAddressSettings;
    ALTER TABLE atboolean RENAME atBoolean;
    ALTER TABLE atbooleansettings RENAME atBooleanSettings;
    ALTER TABLE atdatetime RENAME atDateTime;
    ALTER TABLE atdatetimesettings RENAME atDateTimeSettings;
    ALTER TABLE atdefault RENAME atDefault;
    ALTER TABLE atfile RENAME atFile;
    ALTER TABLE atnumber RENAME atNumber;
    ALTER TABLE atselectoptions RENAME atSelectOptions;
    ALTER TABLE atselectoptionsselected RENAME atSelectOptionsSelected;
    ALTER TABLE atselectsettings RENAME atSelectSettings;
    ALTER TABLE attextareasettings RENAME atTextareaSettings;
    ALTER TABLE attributekeycategories RENAME AttributeKeyCategories;
    ALTER TABLE attributekeys RENAME AttributeKeys;
    ALTER TABLE attributesetkeys RENAME AttributeSetKeys;
    ALTER TABLE attributesets RENAME AttributeSets;
    ALTER TABLE attributetypecategories RENAME AttributeTypeCategories;
    ALTER TABLE attributetypes RENAME AttributeTypes;
    ALTER TABLE attributevalues RENAME AttributeValues;
    ALTER TABLE basicworkflowpermissionassignments RENAME BasicWorkflowPermissionAssignments;
    ALTER TABLE basicworkflowprogressdata RENAME BasicWorkflowProgressData;
    ALTER TABLE blockpermissionassignments RENAME BlockPermissionAssignments;
    ALTER TABLE blockrelations RENAME BlockRelations;
    ALTER TABLE blocks RENAME Blocks;
    ALTER TABLE blocktypepermissionblocktypeaccesslist RENAME BlockTypePermissionBlockTypeAccessList;
    ALTER TABLE blocktypepermissionblocktypeaccesslistcustom RENAME BlockTypePermissionBlockTypeAccessListCustom;
    ALTER TABLE blocktypes RENAME BlockTypes;
    ALTER TABLE btcontentfile RENAME btContentFile;
    ALTER TABLE btcontentimage RENAME btContentImage;
    ALTER TABLE btcontentlocal RENAME btContentLocal;
    ALTER TABLE btcorescrapbookdisplay RENAME btCoreScrapbookDisplay;
    ALTER TABLE btcorestackdisplay RENAME btCoreStackDisplay;
    ALTER TABLE btdashboardnewsflowlatest RENAME btDashboardNewsflowLatest;
    ALTER TABLE btdatenav RENAME btDateNav;
    ALTER TABLE btexternalform RENAME btExternalForm;
    ALTER TABLE btflashcontent RENAME btFlashContent;
    ALTER TABLE btform RENAME btForm;
    ALTER TABLE btformanswers RENAME btFormAnswers;
    ALTER TABLE btformanswerset RENAME btFormAnswerSet;
    ALTER TABLE btformquestions RENAME btFormQuestions;
    ALTER TABLE btgooglemap RENAME btGoogleMap;
    ALTER TABLE btguestbook RENAME btGuestBook;
    ALTER TABLE btguestbookentries RENAME btGuestBookEntries;
    ALTER TABLE btnavigation RENAME btNavigation;
    ALTER TABLE btnextprevious RENAME btNextPrevious;
    ALTER TABLE btpagelist RENAME btPageList;
    ALTER TABLE btrssdisplay RENAME btRssDisplay;
    ALTER TABLE btsearch RENAME btSearch;
    ALTER TABLE btslideshow RENAME btSlideshow;
    ALTER TABLE btslideshowimg RENAME btSlideshowImg;
    ALTER TABLE btsurvey RENAME btSurvey;
    ALTER TABLE btsurveyoptions RENAME btSurveyOptions;
    ALTER TABLE btsurveyresults RENAME btSurveyResults;
    ALTER TABLE bttags RENAME btTags;
    ALTER TABLE btvideo RENAME btVideo;
    ALTER TABLE btyoutube RENAME btYouTube;
    ALTER TABLE collectionattributevalues RENAME CollectionAttributeValues;
    ALTER TABLE collections RENAME Collections;
    ALTER TABLE collectionsearchindexattributes RENAME CollectionSearchIndexAttributes;
    ALTER TABLE collectionversionarealayouts RENAME CollectionVersionAreaLayouts;
    ALTER TABLE collectionversionareastyles RENAME CollectionVersionAreaStyles;
    ALTER TABLE collectionversionblocks RENAME CollectionVersionBlocks;
    ALTER TABLE collectionversionblocksoutputcache RENAME CollectionVersionBlocksOutputCache;
    ALTER TABLE collectionversionblockstyles RENAME CollectionVersionBlockStyles;
    ALTER TABLE collectionversionrelatededits RENAME CollectionVersionRelatedEdits;
    ALTER TABLE collectionversions RENAME CollectionVersions;
    ALTER TABLE composercontentlayout RENAME ComposerContentLayout;
    ALTER TABLE composerdrafts RENAME ComposerDrafts;
    ALTER TABLE composertypes RENAME ComposerTypes;
    ALTER TABLE config RENAME Config;
    ALTER TABLE customstylepresets RENAME CustomStylePresets;
    ALTER TABLE customstylerules RENAME CustomStyleRules;
    ALTER TABLE downloadstatistics RENAME DownloadStatistics;
    ALTER TABLE fileattributevalues RENAME FileAttributeValues;
    ALTER TABLE filepermissionassignments RENAME FilePermissionAssignments;
    ALTER TABLE filepermissionfiletypes RENAME FilePermissionFileTypes;
    ALTER TABLE filepermissions RENAME FilePermissions;
    ALTER TABLE files RENAME Files;
    ALTER TABLE filesearchindexattributes RENAME FileSearchIndexAttributes;
    ALTER TABLE filesetfiles RENAME FileSetFiles;
    ALTER TABLE filesetpermissionassignments RENAME FileSetPermissionAssignments;
    ALTER TABLE filesetpermissionfiletypeaccesslist RENAME FileSetPermissionFileTypeAccessList;
    ALTER TABLE filesetpermissionfiletypeaccesslistcustom RENAME FileSetPermissionFileTypeAccessListCustom;
    ALTER TABLE filesets RENAME FileSets;
    ALTER TABLE filesetsavedsearches RENAME FileSetSavedSearches;
    ALTER TABLE filestoragelocations RENAME FileStorageLocations;
    ALTER TABLE fileversionlog RENAME FileVersionLog;
    ALTER TABLE fileversions RENAME FileVersions;
    ALTER TABLE groups RENAME Groups;
    ALTER TABLE groupsetgroups RENAME GroupSetGroups;
    ALTER TABLE groupsets RENAME GroupSets;
    ALTER TABLE jobslog RENAME JobsLog;
    ALTER TABLE layoutpresets RENAME LayoutPresets;
    ALTER TABLE layouts RENAME Layouts;
    ALTER TABLE mailimporters RENAME MailImporters;
    ALTER TABLE mailvalidationhashes RENAME MailValidationHashes;
    ALTER TABLE packages RENAME Packages;
    ALTER TABLE pagepaths RENAME PagePaths;
    ALTER TABLE pagepermissionassignments RENAME PagePermissionAssignments;
    ALTER TABLE pagepermissionpagetypeaccesslist RENAME PagePermissionPageTypeAccessList;
    ALTER TABLE pagepermissionpagetypeaccesslistcustom RENAME PagePermissionPageTypeAccessListCustom;
    ALTER TABLE pagepermissionpropertyaccesslist RENAME PagePermissionPropertyAccessList;
    ALTER TABLE pagepermissionpropertyattributeaccesslistcustom RENAME PagePermissionPropertyAttributeAccessListCustom;
    ALTER TABLE pagepermissionthemeaccesslist RENAME PagePermissionThemeAccessList;
    ALTER TABLE pagepermissionthemeaccesslistcustom RENAME PagePermissionThemeAccessListCustom;
    ALTER TABLE pages RENAME Pages;
    ALTER TABLE pagesearchindex RENAME PageSearchIndex;
    ALTER TABLE pagestatistics RENAME PageStatistics;
    ALTER TABLE pagethemes RENAME PageThemes;
    ALTER TABLE pagethemestyles RENAME PageThemeStyles;
    ALTER TABLE pagetypeattributes RENAME PageTypeAttributes;
    ALTER TABLE pagetypes RENAME PageTypes;
    ALTER TABLE pageworkflowprogress RENAME PageWorkflowProgress;
    ALTER TABLE permissionaccess RENAME PermissionAccess;
    ALTER TABLE permissionaccessentities RENAME PermissionAccessEntities;
    ALTER TABLE permissionaccessentitygroups RENAME PermissionAccessEntityGroups;
    ALTER TABLE permissionaccessentitygroupsets RENAME PermissionAccessEntityGroupSets;
    ALTER TABLE permissionaccessentitytypecategories RENAME PermissionAccessEntityTypeCategories;
    ALTER TABLE permissionaccessentitytypes RENAME PermissionAccessEntityTypes;
    ALTER TABLE permissionaccessentityusers RENAME PermissionAccessEntityUsers;
    ALTER TABLE permissionaccesslist RENAME PermissionAccessList;
    ALTER TABLE permissionaccessworkflows RENAME PermissionAccessWorkflows;
    ALTER TABLE permissionassignments RENAME PermissionAssignments;
    ALTER TABLE permissiondurationobjects RENAME PermissionDurationObjects;
    ALTER TABLE permissionkeycategories RENAME PermissionKeyCategories;
    ALTER TABLE permissionkeys RENAME PermissionKeys;
    ALTER TABLE pilecontents RENAME PileContents;
    ALTER TABLE piles RENAME Piles;
    ALTER TABLE signuprequests RENAME SignupRequests;
    ALTER TABLE stacks RENAME Stacks;
    ALTER TABLE systemantispamlibraries RENAME SystemAntispamLibraries;
    ALTER TABLE systemcaptchalibraries RENAME SystemCaptchaLibraries;
    ALTER TABLE systemnotifications RENAME SystemNotifications;
    ALTER TABLE userattributekeys RENAME UserAttributeKeys;
    ALTER TABLE userattributevalues RENAME UserAttributeValues;
    ALTER TABLE userbannedips RENAME UserBannedIPs;
    ALTER TABLE usergroups RENAME UserGroups;
    ALTER TABLE useropenids RENAME UserOpenIDs;
    ALTER TABLE userpermissionassigngroupaccesslist RENAME UserPermissionAssignGroupAccessList;
    ALTER TABLE userpermissionassigngroupaccesslistcustom RENAME UserPermissionAssignGroupAccessListCustom;
    ALTER TABLE userpermissioneditpropertyaccesslist RENAME UserPermissionEditPropertyAccessList;
    ALTER TABLE userpermissioneditpropertyattributeaccesslistcustom RENAME UserPermissionEditPropertyAttributeAccessListCustom;
    ALTER TABLE userpermissionusersearchaccesslist RENAME UserPermissionUserSearchAccessList;
    ALTER TABLE userpermissionusersearchaccesslistcustom RENAME UserPermissionUserSearchAccessListCustom;
    ALTER TABLE userpermissionviewattributeaccesslist RENAME UserPermissionViewAttributeAccessList;
    ALTER TABLE userpermissionviewattributeaccesslistcustom RENAME UserPermissionViewAttributeAccessListCustom;
    ALTER TABLE userprivatemessages RENAME UserPrivateMessages;
    ALTER TABLE userprivatemessagesto RENAME UserPrivateMessagesTo;
    ALTER TABLE users RENAME Users;
    ALTER TABLE usersearchindexattributes RENAME UserSearchIndexAttributes;
    ALTER TABLE usersfriends RENAME UsersFriends;
    ALTER TABLE uservalidationhashes RENAME UserValidationHashes;
    ALTER TABLE workflowprogress RENAME WorkflowProgress;
    ALTER TABLE workflowprogresscategories RENAME WorkflowProgressCategories;
    ALTER TABLE workflowprogresshistory RENAME WorkflowProgressHistory;
    ALTER TABLE workflowrequestobjects RENAME WorkflowRequestObjects;
    ALTER TABLE workflows RENAME Workflows;
    ALTER TABLE workflowtypes RENAME WorkflowTypes;

    6th May 2013
    Mostafa Al-Kaouri
    Mostafa Al-Kaouri