为现有数据库添加迁移

时间:2019-06-12 11:24:28

标签: asp.net-core ef-core-2.1

我有包含数据的数据库。我有背景。 现在,我正在尝试为现有数据库添加初始迁移。

我在PM Console中尝试了以下命令:

add-migration InitialCreate -IgnoreChanges

但是据我了解,-IgnoreChanges不适用于EF Core。

有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

结果,我为此问题应用了解决方法。

  1. 在MSSQL Management Studio中,生成了插入数据的脚本。(我将其放入文本文件中不会丢失)。
  2. 我删除了数据库。
  3. 在Visual Studio的Package Manager控制台中,我触发了用于数据层项目的命令Plugins。此操作的结果是出现Add-Migration InitialExist文件夹,其中包含首次迁移和上下文快照。
  4. 然后在软件包管理器控制台中执行了命令Migrations。它使用Update-database表创建了新数据库。该表包含重要的初始记录。创建该表的脚本如下:
__EFMigrationsHistory
  1. 在MSSQL Management Studio中,我应用了先前生成的脚本来插入数据。

完成。这些动作使我可以在开发机器上初始化迁移工作。 对于生产,我运行脚本创建表 USE [my_database_name] GO /****** Object: Table [dbo].[__EFMigrationsHistory] Script Date: 6/19/2019 3:16:26 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[__EFMigrationsHistory]( [MigrationId] [nvarchar](150) NOT NULL, [ProductVersion] [nvarchar](32) NOT NULL, CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY CLUSTERED ( [MigrationId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO 并针对prod数据库插入初始记录。