【问题标题】:How do I upgrade Umbraco CMS from using SQL Server CE to an upgraded version of SQL Server?如何将 Umbraco CMS 从使用 SQL Server CE 升级到 SQL Server 的升级版本?
【发布时间】:2016-09-03 09:44:34
【问题描述】:

我想将我在本地主机(最终是我的实时网站)上的 Umbraco 项目从在 SQL Server CE 上运行的升级到 SQL Server 2014 或 SQL Server 2016。

升级的原因很简单:我可能在某个时候想要管理一个数据库中包含超过 4GB 数据的网站,可以通过多台服务器进行扩展,并且我想备份这些内容。否则我会很懒惰,不理会 Umbraco.sdf。

我在任何地方都没有找到关于此过程的一致文档。也许你们中的某个人可能在 SQL 或 Umbraco 方面更有经验并且可以提供帮助。

(顺便说一句:对于那些不太熟悉 Umbraco 的人,Umbraco 是一个用 C# 和 JavaScript 编写的内容管理系统。这里有一个名为 Umbraco.sdf 的 SQL 文件,它包含了网站的所有内容。)

【问题讨论】:

    标签: c# sql-server sql-server-ce umbraco umbraco7


    【解决方案1】:

    我想通了,以防其他人被卡住。

    这是怎么做的:

    第 1 步:移植到您当前的数据库。使用 Umbraco,有一种简单的方法可以做到这一点。只需安装导出 SQL Server Compact 包,它是 Umbraco CMS 的一个插件。安装后,按照说明生成 SQL 文件。

    第 2 步:将生成的脚本导入 SQL Management Studio 并在新数据库中运行。为了做到这一点:创建一个新数据库并为新用户提供访问该数据库的权限设置(不要使用您的服务器登录名 - 您可以,但最好创建一个用户以便您可以远程访问)。之后,继续将整个文件(是的,整个文件)复制并粘贴到新查询中(右键单击数据库 -> 运行查询),粘贴脚本并运行它。

    第 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" />
    

    这个连接字符串的好处是您可以使用相同的连接字符串在本地和现场进行编辑。这允许您在 localhost 上测试代码更改,而无需更改网站上的代码。唯一自动链接的是 CMS 内容。

    确保不要删除旧的 Umbraco 连接字符串,以防您想恢复到它。只需将其注释掉即可。

    第 4 步:加密 web.config。显然,在您的网站上以明文形式保存数据库密码是不明智的。这个关于加密 web.config 的 MSDN 非常宝贵。

    你会因此失去一些东西:

    1. 数据库的可移植性。有时您只想将文件作为数据库而不是整个服务器。我们只建议在您的站点基本完成时执行此步骤,因为配置 SQL Server 并确保其安全是您不必担心的额外挑战。

    2. 有时,图像无法传输。您可能必须手动重新输入所有图像。

    3. 可能的安全性。每次发布网站时,您可能必须手动重新加密 web.config。这可能非常危险 - 因此请确保您的网站始终对 web.config 进行加密,即使在新发布时也是如此。

    【讨论】:

    【解决方案2】:

    SQLCE ToolBox 是完成这项工作的最佳工具。只需安装扩展程序,步骤如下:

    1. 在服务器资源管理器中添加到新数据库的连接(连接到数据库按钮)
    2. 右键单击 SQLCE 工具箱中的Umbraco.sdf 文件并选择迁移到 SQL Server
    3. 选择您的服务器并导出。
    4. 修改 umbracoDbDSN 连接字符串以指向新数据库。

    目标数据库应该是空的(或者至少没有任何冲突的表名)。

    【讨论】:

      【解决方案3】:

      在 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,在 Webmatrix UI 的左下角,您可以选择数据库。然后浏览到SQL Server CE 数据库,它位于\App_Data 文件夹中,之后上方的菜单选项中会出现一个“迁移按钮”。按该按钮会出现一个迁移对话框,询问您创建的 SQL Server 数据库的连接详细信息。

      【讨论】:

      • 这可以工作,除了 WebMatrix 在 Windows 10 上不受支持(它不会让我安装)。 Microsoft 已完全停止对 WebMatrix 的支持。
      • 天哪,Sql CE Toolbox 怎么样? our.umbraco.org/forum/umbraco-7/using-umbraco-7/…
      • 这适用于数据导出(它创建一个可以作为 SQL 命令脚本运行的文件)。但是,仍然需要成功导入。 SQL 不能只打开文件 - 您需要将其复制并粘贴到 Microsoft SQL Management Studio 并作为脚本运行(在您选择的数据库中,创建一个名为 UmbracoDB 的数据库)。我想我想出了一个办法,但我想看看你们是否有更好的办法。 (有时间我会发布我的解决方案,这并不容易。这需要很多工作。如果你被互联网陌生人谷歌搜索这个问题困住了,如果我没有,请提醒我写它。)
      • 如果您要导入大文件,请避免使用管理工作室,使用控制台应用程序 sqlcmd.exe(例如 sqlcmd -S myServer\instanceName -i C:\myScript.sql)
      猜你喜欢
      • 1970-01-01
      • 2018-02-03
      • 2011-06-12
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多