首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义FluentMigrator Postgres VersionInfo架构

自定义FluentMigrator Postgres VersionInfo架构
EN

Stack Overflow用户
提问于 2015-08-24 05:41:57
回答 1查看 1.1K关注 0票数 3

我正在尝试在PostgreSQL中使用FluentMigrator。

我让它成功地运行了迁移,但是VersionInfo表始终在public模式中。我在FluentMigrator Wiki上读到我可以覆盖模式名称,但它不起作用。

下面是我编写的覆盖这些设置的类:

代码语言:javascript
复制
namespace YARA.Migrations
{
    using FluentMigrator.VersionTableInfo;

    [VersionTableMetaData]
    public class YaraVersionTable : DefaultVersionTableMetaData
    {
        public override string SchemaName
        {
            get { return "dbo"; }
        }

        public override string TableName
        {
            get
            {
                return "MigrationInfo";
            }
        }
    }
}

下面是运行迁移后的数据库屏幕截图;模式或更改表名都不会对VersionInfo表生效。

有什么想法?

EN

回答 1

Stack Overflow用户

发布于 2020-04-23 14:41:46

你必须创建你的类,在我的例子中:

代码语言:javascript
复制
[VersionTableMetaData]
public class CustomMetadataTable : DefaultVersionTableMetaData
{
    public override string TableName => "__migrations_metadata";
}

然后将其添加到服务中

代码语言:javascript
复制
var serviceProvider = new ServiceCollection()
            .UseStandardConfiguration()
            .AddFluentMigratorCore()
            .ConfigureRunner(rb => rb
                .AddPostgres92()
                .WithGlobalConnectionString(c => c.GetService<IConfiguration>().GetConnectionString("THECONNECTION_STRING"))
                .ScanIn(THEASSEMBLY).For.Migrations())
            .AddLogging(lb => lb.AddFluentMigratorConsole())
            .AddTransient<IVersionTableMetaData, CustomMetadataTable>()
            .BuildServiceProvider(false);

只需确保是您注册的最后一件事(恰好在最后一行的上方)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32171831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档