将现有Kentico数据库迁移到Azure SQL - 归类不匹配

时间:2017-06-15 12:42:10

标签: database azure collation kentico

我们目前有一个SQL Server Kentico数据库,我们希望将其迁移到Azure SQL中。当前数据库的排序规则类型为Latin1_General_CI_AS(默认为Kentico),我们的Azure SQL主数据库为SQL_Latin1_General_CP1_CI_AS(Azure默认值)。

我们最初只是将它导入到一个新的Azure数据库中,它似乎工作正常,直到Kentico执行任何涉及比较系统表和Kentico数据库之间的字符串的查询。例如在Kentico中创建自定义表并尝试选择现有数据库表时的向导。就在那时,我们意识到master和Kentico数据库之间整理的不匹配。

有没有办法更改Kentico数据库的排序规则类型或将我们的Kentico内容等导入新数据库?

我们已经尝试了显而易见的 - ALTER DATABASE <name> COLLATE SQL_Latin1_General_CP1_CI_AS但由于许多对象提供错误而无法工作:“如果架构绑定对象依赖于它,则无法更改数据库排序规则。”< / p>

我希望不必启动新数据库并手动将所有内容和自定义项迁移到新实例中。

2 个答案:

答案 0 :(得分:1)

我想我自己已经解决了这个问题:)

  1. 使用“站点导出”从我的工作站点导出所有对象
  2. 使用标准Azure排序规则
  3. 创建了一个新的空Azure SQL数据库
  4. 将我的网络应用的web.config更改为指向新的空数据库
  5. 运行Web应用程序并通过数据库向导在新的空数据库中设置基本Kentico对象
  6. 通过从第1步
  7. 导入我的导出网站来创建新网站

    现在我在一个具有正确排序规则类型的新数据库中拥有我的完整网站等。

答案 1 :(得分:1)

我也有这个痛苦的问题。我不确定为什么Kentico将排序规则更改为默认排序,但好处是Azure现在允许您在创建新数据库时设置排序规则。您只需输入&#39; Latin1_General_CI_AS&#39;在整理框中。