我想将我的本地主机(最终是我的实时网站)上的Umbraco项目从SQL Server CE上运行升级到SQL Server 2014或SQL Server 2016.
升级的原因很简单:我可能在某些时候想要管理一个数据库中数据超过4GB的网站,可以使用多个服务器进行扩展,我想要备份。否则我会懒得离开Umbraco.sdf。
我没有在任何地方找到关于此流程的一致文档。也许你们中的一个人可能对SQL或Umbraco更有经验,可以提供帮助。
(旁白:对于那些不熟悉Umbraco的人来说,Umbraco是一个用C#和JavaScript编写的内容管理系统。这里有一个名为Umbraco.sdf的SQL文件,其中包含了网站的所有内容。)
答案 0 :(得分:5)
我想出来了,以防其他人被卡住。
以下是如何操作:
第1步:在当前数据库上移植。有了Umbraco,有一种简单的方法可以做到这一点。只需安装Export 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" />
这个连接字符串的好处是你可以使用相同的连接字符串在本地和现场进行编辑。这允许您在本地主机上测试代码更改,而无需更改网站上的代码。唯一自动链接的是CMS内容。
请确保不要删除旧的Umbraco连接字符串,以防您想要恢复它。简单地说出来。
第4步:加密web.config。显然,在您的网站上以明文形式保存数据库密码并不明智。这个关于加密web.config的MSDN是非常宝贵的。
你会失去一些东西:
数据库的可移植性。有时您只想让文件成为数据库而不是整个服务器。我们只建议在您的网站基本完成时执行此步骤,因为配置SQL Server并确保其安全是您不必担心的额外挑战。
有时,图像无法传输。您可能需要手动重新输入所有图像。
可能的安全性。每次发布网站时,都可能需要手动重新加密web.config。这可能非常危险 - 因此请确保您的网站始终加密web.config,即使在新发布时也是如此。
答案 1 :(得分:2)
SQLCE ToolBox是这项工作的最佳工具。只需安装扩展,然后步骤如下:
Umbraco.sdf
文件并选择迁移到SQL Server 目标数据库应为空(或至少没有任何冲突的表名)。
答案 2 :(得分:0)
在webmatrix中执行此操作似乎最简单,您尝试过吗?
或: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数据库的连接详细信息。