EFCore,是否可以在没有启动项目的情况下生成迁移脚本?

时间:2019-03-18 09:25:11

标签: entity-framework asp.net-core ef-migrations ef-core-2.0

我在Google上搜索了很多,但是没有找到有关该问题的任何有用信息。

当前,我正在制作一个插件系统,每个插件都是一个.Net Core 2.2 ClassLibrary 项目。

在一个插件中,它将创建一个新的DbContext。为了能够部署到生产环境,我需要创建迁移脚本。但是,如果没有启动项目,我无法调用Add-Migration或Script-Migration。

最后,我们提出了一个仅用于生成脚本的虚拟启动项目。但是,该脚本不包含任何连接信息:

IF OBJECT_ID(N'[__EFMigrationsHistory]') IS NULL
BEGIN
CREATE TABLE [__EFMigrationsHistory] (
    [MigrationId] nvarchar(150) NOT NULL,
    [ProductVersion] nvarchar(32) NOT NULL,
    CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId])
);
END;

GO

CREATE TABLE [Blogs] (
    [BlogId] int NOT NULL IDENTITY,
    [Url] nvarchar(max) NULL,
    CONSTRAINT [PK_Blogs] PRIMARY KEY ([BlogId])
);

-- omit some similar code

CREATE INDEX [IX_Posts_BlogId] ON [Posts] ([BlogId]);

GO

INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20190318085448_InitialCreate', N'2.2.3-servicing-35854');

GO

我不明白拥有启动项目的意义。有什么解决方法吗?谢谢。

0 个答案:

没有答案