使用Fluent Migrator通过自定义迁移类处理架构,表和列名称

时间:2018-07-27 18:32:57

标签: c# asp.net-core fluent-migrator

我正在为模块化应用程序编写迁移工具,该工具旨在使用内部模块,每个模块都有自己的迁移集。

我们的应用程序全部基于dotnet核心,可以使用不同的dbms,并且可以使用不同的约定:每个模块是否具有自己的架构,每个模块的自定义表前缀,大写或小写的表名等。

因此,这些约定需要由应用程序本身告知,而每个模块中的每次迁移只需编写一次。

我不想每次我们插入列名,表名等时都必须调用方法调用,以使开发人员不必牢记所有这些东西。

我开始重新实现每个表达式生成器,但是我觉得这是非常错误且容易出错的。

我还制作了一个自定义的通用Migration类,继承了Migration并具有一个命名约定接口作为通用类型(作为转换模式,表和列的三种方法),以便进行注册和解析。服务集合,并使用它来构建SQL查询。我认为这是正确的方法。

我还制作了一种可以处理各种表达式类型以应用转换的方法,但是我目前仍处于困境,不知道在何处调用它。

我做错了什么吗,有什么办法可以实现我想要的? 谢谢您的帮助。 (同样,很抱歉,我正在用手机打电话,现在没有电脑,也没有代码,但这让我发疯了。)

编辑:最初,我想使用约定,这似乎正是我想要的约定,但是它不能处理表名,并且看起来不能特定于一组迁移。 。但是,应用它们的地方可能是我需要应用我的地方,但是我还没有找到重载Apply方法的方法:包含约定的MigrationValidator并没有实现任何方法接口,因此我不能通过依赖项注入来解决它。

0 个答案:

没有答案