Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Domas 2 posts 22 karma points
    Feb 03, 2015 @ 23:10
    Domas
    0

    Compatibility with mysql db

    Hi,

    I am just wondering - is uSycn supposed to work correctly with MySQL database?

    I get a simple error: mysql is complaining that 'UMBRACONODE' table doesn't exist when doing full import. The table is named 'umbracoNode' in database and on linux server it is case sensitive.

  • Kevin Jump 944 posts 5094 karma points mvp c-trib
    Feb 03, 2015 @ 23:41
    Kevin Jump
    0

    Hi

    uSync 'should' work with mySQL, although i've never tested it.

    As it's written uSync doesn't do anything directly with the DB - it only works via the Umbrao APIs, so if your getting an error it's somewhere inside of the API.

    What version of umbraco are you running ? I've had a quick look through the Umbraco-CMS code, and can't spot an uppercase reference to the table. 

    https://github.com/umbraco/Umbraco-CMS/search?q=UMBRACONODE&type=Code&utf8=%E2%9C%93

    but it may be more subtle that this 

    Kevin

     

     

  • Domas 2 posts 22 karma points
    Feb 06, 2015 @ 18:21
    Domas
    0

    Hi,

    I am running 7.2 and my guess that it is some sort other issue in umbraco - I've got a similar error elsewhere too. 

    Anyway here is the stack trace for the one I mentioned before:

    Server Error in '/' Application.


    Table 'restaurantmatreshka_dk_db.UMBRACONODE' doesn't exist

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: MySql.Data.MySqlClient.MySqlException: Table 'restaurantmatreshka_dk_db.UMBRACONODE' doesn't exist

    Source Error: 

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


    Stack Trace: 

    [MySqlException (0x80004005): Table 'restaurantmatreshka_dk_db.UMBRACONODE' doesn't exist]
       MySql.Data.MySqlClient.MySqlStream.ReadPacket() +272
       MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) +68
       MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId) +17
       MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) +110
       MySql.Data.MySqlClient.MySqlDataReader.NextResult() +761
       MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +1699
       MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(MySqlConnection connection, MySqlTransaction transaction, String commandText, MySqlParameter[] commandParameters, Boolean ExternalConn) +156
       MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText, MySqlParameter[] commandParameters) +56
       umbraco.DataLayer.SqlHelpers.MySql.MySqlHelper.ExecuteReader(String commandText, MySqlParameter[] parameters) +33
       umbraco.DataLayer.SqlHelper`1.ExecuteReader(String commandText, IParameter[] parameters) +81
    
    [SqlHelperException: Umbraco Exception (DataLayer): SQL helper exception in ExecuteReader]
       umbraco.DataLayer.SqlHelper`1.ExecuteReader(String commandText, IParameter[] parameters) +199
       umbraco.cms.businesslogic.CMSNode.setupNode() +121
       umbraco.cms.businesslogic.CMSNode..ctor(Int32 Id) +36
       umbraco.cms.businesslogic.CMSNode.MakeNew(Int32 parentId, Guid objectType, Int32 userId, Int32 level, String text, Guid uniqueID) +65
       umbraco.cms.businesslogic.web.StyleSheet.MakeNew(User user, String Text, String FileName, String Content) +185
       umbraco.cms.businesslogic.web.StyleSheet.Import(XmlNode n, User u) +182
       jumps.umbraco.usync.SyncStylesheet.ReadFromDisk(String path) +349
       jumps.umbraco.usync.SyncStylesheet.ReadAllFromDisk() +146
       jumps.umbraco.usync.uSync.ReadAllFromDisk() +227
       jumoo.usync.ui.uSyncUi.btnImport_Click(Object sender, EventArgs e) +25
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628026
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

     

     

    Besides that, I am also getting this one, right after installation if there is some content in uSync folder (import on start is disabled) and umbraco site was not loaded before (renaming usync folder to something else, logging in and renaming it back helps)

    [Exception: No ContentType matching the passed in Alias: 'Root' was found]
       jumps.umbraco.usync.uSync.RunSync() +563
       jumps.umbraco.usync.uSync.DoOnStart() +94
       jumps.umbraco.usync.uSync.OnApplicationStarted(UmbracoApplicationBase httpApplication, ApplicationContext applicationContext) +26
       Umbraco.Core.CoreBootManager.<Complete>b__5(IApplicationEventHandler x) +19
       Umbraco.Core.EnumerableExtensions.ForEach(IEnumerable`1 items, Action`1 action) +141
       Umbraco.Core.CoreBootManager.Complete(Action`1 afterComplete) +94
       Umbraco.Web.WebBootManager.Complete(Action`1 afterComplete) +38
       Umbraco.Core.UmbracoApplicationBase.StartApplication(Object sender, EventArgs e) +158
       Umbraco.Core.UmbracoApplicationBase.Application_Start(Object sender, EventArgs e) +9
  • Marcio Goularte 124 posts 399 karma points
    Feb 01, 2017 @ 00:38
    Marcio Goularte
    0

    Hello guys. I would like to share how I solved this. The problem is using a MySQL installed on linux. The lowercasetable_names setting is case-insensitive and windows is not. An alternative is to configure your MySQL. However it is not possible to do this in the hosting, generating these errors.

    I discovered in the source code of umbraco that what makes the query Uppercase is this method in SqlParser.cs

    Https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/umbraco.datalayer/SqlParser.cs#L214

    What I did was override the method UppercaseIdentifiers in the MySqlParser without ToUpper. It was strange the name of the method being for uppercase without doing this. But due to the urgency of the situation it was working. https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/umbraco.datalayer/SqlHelpers/MySql/MySqlParser.cs

    Another way would be to remove the call from the method on that line. Https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/umbraco.datalayer/SqlHelpers/MySql/MySqlParser.cs#L37

    But I did not measure the impact of it.

    This solution involves you downloading the source code corresponding to your version, changing and recompiling and updating the dlls in your installation

    https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

Please Sign in or register to post replies

Write your reply to:

Draft