Переопределить строку подключения (из settings.txt) в Orchard CMS - PullRequest
5 голосов
/ 12 февраля 2012

Я развернул веб-сайт в AppHarbor, который использует базу данных MS SQL. AppHarbor предоставляет мне строку подключения, которую я ввел в settings.txt, и, кажется, она работает нормально, НО AppHarbor предлагает использовать вместо нее переменную SQLSERVER_CONNECTION_STRING.

Это связано с тем, что строка подключения может быть изменена без уведомления, поэтому единственный безопасный способ - использовать указанную переменную.

Доступ к переменным конфигурации, указанным ниже, должен быть выполнен программно, так как значения могут быть обновлены поставщиком дополнения без уведомления.

Есть ли способ переопределить настройку DataConnectionString из settings.txt и настроить вместо нее использование переменной SQLSERVER_CONNECTION_STRING? Я предполагаю, что AppHarbor каким-то образом устанавливает эти переменные как appSettings.

P.S. Это мое первое приложение в Orchard, я не очень разбираюсь в этой CMS.

Ответы [ 3 ]

6 голосов
/ 12 февраля 2012

Строка подключения задается в классе ShellSettingsManager.Я не уверен, что вы легко можете заменить эту зависимость из модуля, но вы можете просто изменить строку кода, которая устанавливает строку соединений ...

shellSettings.DataConnectionString = value;  //use your config value instead

ShellSettingsManager является реализацией IShellSettingsManager, чтобыесть некоторая гибкость, если вы хотите просто реализовать свой собственный тоже.

2 голосов
/ 19 октября 2013

Я только что опубликовал свой "Настройки оболочки конфигурации" модуль (Fineout.ConfigShellSettings) в галерее Orchard.Наконец, этот модуль предоставляет безболезненный способ управления настройками оболочки сайта (арендатора) Orchard с помощью управления конфигурацией.

Загрузите модуль настроек оболочки конфигурации из галереи Orchard!

Я скопировал описание пакета модуля (версия 1.0.1) ниже:

Позволяет указывать настройки оболочки Orchard для арендаторов через настройки приложения конфигурации, т.е. "Web.config"вместо «Settings.txt».Это позволяет управлять настройками сайта (арендатора) с помощью управления конфигурацией сборки, значительно упрощая процесс сборки и развертывания для большинства сред и инфраструктур.

При включении этой функции существующие настройки оболочки для всех арендаторов будут скопированы из соответствующих «настроек»..txt "файлы в AppSettings, определенные в" Orchard.Web / Web.config ".Аналогично, всякий раз, когда функция отключена, существующие AppSettings, определенные для всех арендаторов, будут копироваться обратно в соответствующие файлы «Settings.txt».Это позволяет управлять этой функцией без каких-либо ручных манипуляций с файлами или изменений кода.

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

0 голосов
/ 13 февраля 2012

Развертывание сада в апфарбор может не стоить усилий. При развертывании Appharbor уничтожает все приложение, поэтому загруженные носители также удаляются. Вы можете обойти это, разместив папку мультимедиа в другом месте, например, amazon s3.

Но у вас также нет FTP-доступа к файлам журналов или чему-то еще. (по крайней мере, не в последний раз, когда я смотрел).

Кроме того, вы не можете воспользоваться преимуществами веб-развертывания.

Вы можете заставить это работать, но архитектура садов создает много трения с моделью развертывания appharbor.

Не пойми меня неправильно. Я люблю Апфарбор. Но фруктовый сад - это квадратный колышек. Я посмотрел на appharbor, но через 4 месяца обнаружил, что боюсь обновлять, потому что слишком много нестандартных настроек. Наконец, бросил полотенце и заплатил 8 долларов в месяц в Arvixe. Гораздо меньше трения сейчас.

...