首页 文章

Azure移动服务应用服务混乱

提问于
浏览
1

我一直在开发Azure移动服务,并且我已经实现了代码优先迁移,因为数据模型在开发期间发生了很大变化,我不想丢失我的数据,因为Azure移动服务中的默认行为是丢弃每当数据模型发生更改时,都会支持SQL数据库表 .

这个移动服务尚未投入 生产环境 ,但我想将其迁移到新的Azure App Service(移动应用程序),我已经完成了所有必要的调整,以使我的TableControllers等按照我喜欢的方式工作 .

显然,在第一次部署到App Service时,我不需要担心数据模型的变化,但在某些时候我会改变一些东西 . 虽然有很多关于为旧的Azure移动服务进行代码首次迁移的帖子,但新服务似乎没有任何内容 .

更令人惊讶的是,在Azure门户中,新的App Service似乎没有SQL服务器支持,因为似乎没有为此服务分配SQL Server实例 .

所以我的问题是:

1)SQL Server支持新的Azure App Service吗?如果是这样,为什么我无法在Azure门户中获得连接细节?

2)如果它由SQL服务器支持,如何在不丢失数据的情况下进行模型更改 .

我已经搜索并搜索了这个互联网,但似乎没有直截了当的答案(只是普遍缺乏信息)

非常感谢

2 回答

  • 2

    1)是的 . 查看连接字符串下的应用程序设置

    2)如果你正在做Node,那么完成ALTER TABLE - 而不是drop / create . 如果您正在使用ASP.NET,那么它由实体框架支持,因此适用标准EF规则 - 执行EF迁移 . 您还可以在 App_Start/AzureMobile.cs (或任何包含启动逻辑的文件名)中使用此框架关闭管理表的框架

    // Initialize the database with EF Code First
        // Database.SetInitializer(new AzureMobileInitializer());
        Database.SetInitializer<MyDbContext>(null);
    

    注释掉的行是我原来的初始化程序 . 未评论的版本是新版本,不会对数据库进行任何更改 . 如果执行此操作,则负责更改SQL以更新模型的数据库 .

    我正在https://shellmonger.com做一个"30 days of ZUMO"博客系列 - 我最终会到达ASP.NET(可能是5月初)

  • 0

    好的,在Adrian Hall的回答的帮助下,我终于深究了这一点 .

    问题是文档不好,Visual Studio中的“新项目”向导不足以及我假设一切都应该按预期工作的结合 .

    首先,我在Visual Studio中创建了App Service移动应用程序,而不是通过azure门户创建 . 然后我成功地从Visual Studio部署它,不知道需要在线完成更多设置 .

    从本质上讲,创建时的应用服务默认情况下没有数据库(事后看来,这可能是我在Visual Studio新项目向导中没有要求提供数据库详细信息的原因) .

    您必须在azure门户中手动配置新的数据库连接,您还可以根据需要在其中创建新的SQL数据库 .

    这个问题由于我自己的无能而变得更加复杂 - 我已经将我的客户端代码配置为使用离线同步,所以每当我启动我的客户端应用程序时,我都会看到之前的数据 - 这让我认为服务器项目必须有一些数据存储 . 事实上,我的本地PushAsync实际上并没有做任何事情 .

    现在我已经有了一个正确配置的数据连接,所有内容似乎都符合Adrian Halls的答案 - 这是正确的 .

相关问题