2016-09-03 12 views
1

Я хотел бы обновить свой проект Umbraco на своем локальном хосте (и, в конечном итоге, на своем веб-сайте), от запуска SQL Server CE до SQL Server 2014 или SQL Server 2016.Как обновить CMS Umbraco с помощью SQL Server CE до обновленной версии SQL Server?

Причина обновления проста: я могу в какой-то момент захотите управлять веб-сайтом с более чем 4 ГБ данных в базе данных, масштабируется с несколькими серверами, и я хотел бы поддержать все. В противном случае я был бы ленив и оставил бы Umbraco.sdf один.

Я не нашел последовательной документации по этому процессу в любом месте. Возможно, один из вас может быть более опытным с SQL или Umbraco и может помочь.

(в сторону: Для тех, кто менее знаком с Umbraco, Umbraco является Система управления контентом написана на C# и JavaScript Там в SQL файл здесь по имени Umbraco.sdf, содержание которого все из содержимого веб-сайта..)

ответ

2

Я понял это, на случай, если кто-нибудь застрянет.

Вот как это сделать:

Шаг 1: Порт над текущей базы данных. С Umbraco есть простой способ сделать это. Просто установите пакет Export SQL Server Compact, дополнение к вашей CMS Umbraco. После установки следуйте инструкциям и создайте свой файл SQL.

Этап 2: Импортируйте сгенерированный скрипт в SQL Management Studio и запустите его в новой базе данных.Для этого: создайте новую базу данных и дайте новые настройки прав доступа для доступа к этой базе данных (не используйте свой логин сервера - вы можете, но лучше создать пользователя, чтобы вы могли получить доступ удаленно). После этого перейдите и скопируйте и вставьте весь файл (да, весь файл) в новый запрос (щелкните правой кнопкой мыши запрос базы данных -> run), вставьте скрипт и запустите его.

Шаг 3: Измените строку подключения. Это в вашем web.config. В XML-тегов, настройки что-то похожее на это (удалить {}):

<add name="umbracoDbDSN" 
    connectionString="Data Source={the ip of your database};Initial Catalog={theDatabaseName};User Id={theUserId};Password={yourPassword}" 
    providerName="System.Data.SqlClient" /> 

Хорошая вещь об этой строке соединения является то, что вы можете редактировать локально, а также на месте, с той же строкой подключения , Это позволяет вам проверять изменения кода на вашем локальном хосте, не изменяя код на веб-сайте. Единственное, что автоматически связано, это CMS Content.

Не забудьте удалить свою старую строку соединения Umbraco, если вы хотите вернуться к ней. Просто прокомментируйте это.

Этап 4: Зашифруйте файл web.config. Ясно, что не разумно хранить пароль базы данных в открытом тексте на своем веб-сайте. Этот MSDN при шифровании вашего web.config неоценим.

Есть несколько вещей, которые вы будете терять с этим:

  1. Переносимость базы данных. Иногда вам нужен только файл, который будет представлять собой базу данных, а не весь сервер. Мы рекомендуем делать этот шаг только в том случае, если ваш сайт по существу выполнен, поскольку настройка SQL Server и обеспечение его безопасности является дополнительной проблемой, о которой вы не должны беспокоиться.

  2. Иногда изображения не переносятся. Возможно, вам придется повторно загружать все ваши изображения вручную.

  3. Возможная охрана. Каждый раз, когда вы публикуете свой сайт, вам, возможно, придется повторно зашифровать web.config вручную. Это может быть чрезвычайно опасно - поэтому убедитесь, что на вашем веб-сайте всегда есть зашифрованный файл web.config, даже в новых публикациях.

+0

Благодарим вас за отличные советы. Теперь кажется, что пакет необходимо удалить после переноса. В противном случае ошибка помешала бы Umbraco работать должным образом: https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/53022 -UmbracoWebModelsDynamicPublishedContentList-ли-не-содержат-а-определение-для-любой – Hong

-1

It кажется, проще всего сделать это в webmatrix, вы пробовали это?

От: https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/53818-Convert-Umbraco-SQL-CE-database-to-SQL-Express

или: https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/49519-Changing-database-in-Umbraco-7

Прежде всего, необходимо настроить базу данных в SQL Server. Как только это будет сделано, откройте веб-матрицу, а в нижнем левом углу пользовательского интерфейса webmatrix вы можете выбрать базы данных. Затем перейдите к базе данных SQL Server CE, она находится в папке \App_Data, после чего в настройках верхнего меню появится «кнопка перехода». Нажав на эту кнопку, появится диалоговое окно миграции с запросом сведений о соединении в базе данных SQL Server, которую вы создали.

+1

Это может сработать, за исключением того факта, что WebMatrix не поддерживается в Windows 10 (он не позволит мне установить). Microsoft полностью прекратила поддержку WebMatrix. – Ryan

+1

О, дорогая, как насчет Sql CE Toolbox? https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/53818-Convert-Umbraco-SQL-CE-database-to-SQL-Express –

+0

Это работало для экспорта данных (он создает файл который может выполняться как скрипт команды SQL). Однако все же должен быть успешный импорт. SQL не может просто открыть файл - вам нужно скопировать и вставить его в Microsoft SQL Management Studio и запустить его как скрипт (в базе данных по вашему выбору сделайте одно имя UmbracoDB). Я думаю, что я понял путь, но я хочу посмотреть, есть ли у вас, ребята, лучший. (Я выложу свое решение, когда у меня есть время, это непросто. Требуется много работы. Если вы застряли в проблеме интернет-пришельца, отправляющего это в Google, напомните мне написать его, если у меня его нет.) – Ryan

1

SQLCE ToolBox - лучший инструмент для этой работы. Просто установите расширение, то шаги заключаются в следующем:

  1. В Server Explorer добавить соединение к вашим новым базам данным (подключиться к базе данных кнопки)
  2. правой кнопка мыши на Umbraco.sdf файл в в SQLCE ToolBox и выберите Перенос на SQL-сервер
  3. Выберите свой сервер и экспортируйте его.
  4. Измените строку соединения umbracoDbDSN, чтобы указать на новую базу данных.

Целевая база данных должна быть пустой (или, по крайней мере, не иметь конфликтующих имен таблиц).