迁移数据库和移动服务后,移动服务仍在使用旧架构
After migrating database and mobile service the mobile service is still using old schema
我需要将一个 Azure 项目移动到一个新帐户。我的 Azure 项目由一个 SQL 数据库和一个连接到该数据库的移动服务组成。
我通过将数据库备份到 .bacpac 文件并将其导入新的 Azure 帐户来移动数据库。我手动重新创建了移动服务。因为移动服务需要不同的名称,所以我通过 运行:
更改了导入表的架构
ALTER SCHEMA [NewSchema]
TRANSFER [OldSchema].[TableName]
迁移后现在 SELECT
可以工作了。在 Azure 门户中,我可以看到所有表格都有行,并且移动服务可以从数据库中读取。然而,问题出在插入和服务的自定义 API 中。
那些似乎仍然适用于旧模式:
Insert: Error: [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid object name '[OldSchema].[TableName]'. (SqlState: 42S02, Code: 208)
CustomAPI: Error: [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid object name '[OldSchema].[TableName]'.
我在任何地方都找不到对旧模式的引用。不在代码库中,不在数据库中。
我还去执行了
SELECT * FROM sys.database_principals
alter user <userName> WITH DEFAULT_SCHEMA = [NewSchema]
所有用户。
我没主意了。我缺少什么,它在哪里引用旧架构?
感谢您的帮助!
编辑: 我刚刚尝试在我试图执行的自定义 API 中打印 SELECT SCHEMA_NAME()
。它打印了 正确的新模式名称。 当我打印 SELECT CURRENT_USER
时,打印了正确的用户,以及正确的默认模式。我现在比以往任何时候都更加困惑。
你能检查一下你的数据库触发器吗?有一个在 Insert/Update/Delete 上运行的触发器可能仍然引用您的旧架构。
我需要将一个 Azure 项目移动到一个新帐户。我的 Azure 项目由一个 SQL 数据库和一个连接到该数据库的移动服务组成。
我通过将数据库备份到 .bacpac 文件并将其导入新的 Azure 帐户来移动数据库。我手动重新创建了移动服务。因为移动服务需要不同的名称,所以我通过 运行:
更改了导入表的架构ALTER SCHEMA [NewSchema]
TRANSFER [OldSchema].[TableName]
迁移后现在 SELECT
可以工作了。在 Azure 门户中,我可以看到所有表格都有行,并且移动服务可以从数据库中读取。然而,问题出在插入和服务的自定义 API 中。
那些似乎仍然适用于旧模式:
Insert: Error: [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid object name '[OldSchema].[TableName]'. (SqlState: 42S02, Code: 208)
CustomAPI: Error: [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid object name '[OldSchema].[TableName]'.
我在任何地方都找不到对旧模式的引用。不在代码库中,不在数据库中。
我还去执行了
SELECT * FROM sys.database_principals
alter user <userName> WITH DEFAULT_SCHEMA = [NewSchema]
所有用户。
我没主意了。我缺少什么,它在哪里引用旧架构?
感谢您的帮助!
编辑: 我刚刚尝试在我试图执行的自定义 API 中打印 SELECT SCHEMA_NAME()
。它打印了 正确的新模式名称。 当我打印 SELECT CURRENT_USER
时,打印了正确的用户,以及正确的默认模式。我现在比以往任何时候都更加困惑。
你能检查一下你的数据库触发器吗?有一个在 Insert/Update/Delete 上运行的触发器可能仍然引用您的旧架构。