【问题标题】:EF Core SQLite on Mac and Windows with Publish to AzureMac 和 Windows 上的 EF Core SQLite 并发布到 Azure
【发布时间】:2016-08-22 00:00:37
【问题描述】:

我正在寻找一种改进的跨平台 EF Core 本地开发解决方案,将阶段/生产发布到 Azure Web/SQL。

当前本地解决方案:
我有一个使用 SQLite 在 MacOS 和 Windows 上进行本地开发的 ASP.NET Core、EF Core、Identity、MVC 6 应用程序。选择 SQLite 是因为我相信它是 Mac 和 Windows 的唯一稳定的数据库提供程序。每次进行需要数据库迁移的更改时,我们都会运行一个脚本,该脚本

1) 删除本地 SQLite 数据库以及现有的迁移和 ContextModelSnapshot 文件 2) 创建一个“初始”迁移
3) 更新数据库
4) 当我们在 Windows 上使用 IIS Express 时,Windows 版本的脚本将 SQLite 数据库移动到 wwwroot 目录

注意:迁移文件夹在 .gitignore 中被忽略

对于本地开发人员,该解决方案正在运行。

当我发布到 Azure 时,我们:
1) 注释掉 services.AddEntityFramework() .AddSQLite() 连接并切换到 SQLServer 连接
2) 运行脚本以创建新迁移(因为为 SQLite 生成的迁移不适用于 Azure SQL)
3) 运行脚本删除 SQL Azure 上的数据库表
4) 发布
5) 将配置切换回 SQLite 并继续本地开发

我希望有人可以提出更好的解决方案,消除大部分手动步骤,并在我们想要迁移而不是删除的暂存/生产数据库时处理这种情况。

【问题讨论】:

  • 您找到解决此问题的方法了吗?我发现自己处于同样的情况......除了脚本部分。
  • @NovaDev 我还没有想出更好的解决方案。

标签: entity-framework-core


【解决方案1】:

似乎唯一正确的解决方案是 Startup.cs as described 中的环境特定方法。

基本上你创建ConfigureDevelopmentServices() 方法并在那里添加你的环境特定配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多