将现有的 Kentico 数据库迁移到 Azure SQL - 排序规则不匹配

Migrate existing Kentico database to Azure SQL - collation mismatch

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

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

是否有任何方法可以更改 Kentico 数据库上的排序规则类型或将我们的 Kentico 内容等导入新数据库?

我们已经尝试了显而易见的方法 - ALTER DATABASE <name> COLLATE SQL_Latin1_General_CP1_CI_AS,但由于许多对象给出了错误,所以这行不通:"The database collation cannot be changed if a schema-bound object depends on it."

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

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

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

现在我在新数据库中有了我的完整站点等,并且具有正确的排序规则类型。

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