Как использовать базу данных MySQL с Orchard CMS 1.3.10?

Я пытаюсь изменить сад.Модуль установки, так что я могу установить Орчард-КМВ 1.3.10 с MySQL в качестве datase.

Я прихожу так долго, что я получаю MySQL в GUI для установки, и когда я нажимаю кнопку установки, я получаю это сообщение об ошибке из orchard:

The value 'MySql' is not valid for DatabaseOptions.

но я не могу найти, как я добавляю MySql в качестве DatabaseOptions, кто - нибудь еще получает его для работы с MySQL?

старый модуль для MySQL не совместим с последней версией Orchard CMS, которая почему он звонит, чтобы сделать его самостоятельно, если я заставлю его работать, я собираюсь выпустить его с открытым исходным кодом для других.

1 ответов


ошибка, о которой вы говорите, заключается в том, что свойство DatabaseOptions является логическим. Вам нужно будет изменить это свойство, чтобы принять строковые значения. Есть несколько мест в контроллере установки, которые вам нужно будет изменить, как это свойство используется...

однако наиболее важной частью является реализация DataServicesProvider. Я добавил свой в core, но я думаю, вы можете просто поместить его в модуль настройки в качестве функции. Моя выглядит вот так...

namespace Orchard.Data.Providers {
    public class MySqlDataServiceProvider : AbstractDataServicesProvider
    {
        private readonly string _connectionString;

        public MySqlDataServiceProvider(string dataFolder, string connectionString)
        {
            _connectionString = connectionString;
        }

        public static string ProviderName
        {
            get { return "MySql"; }
        }

        public override IPersistenceConfigurer GetPersistenceConfigurer(bool createDatabase)
        {
            var persistence = MySQLConfiguration.Standard;

            if (string.IsNullOrEmpty(_connectionString))
            {
                throw new ArgumentException("The connection string is empty");
            }

            persistence = persistence.ConnectionString(_connectionString);
            return persistence;
        }
    }
}

Oh, и не забывайте, что вам нужно будет ссылаться на MySql.Данные. Он доступен в виде пакета NuGet.