使用DbUp,可以用C# (而不是SQL)编写过程迁移吗?
我意识到DbUp的一般理念是在SQL中完成所有事情,但在某些情况下,C#可能是更好的工作工具。
例如,假设您要在数据库中存储序列化的二进制blobs (忽略这是否是一个好主意),并且希望更改这些blobs的结构。您的应用程序代码具有反序列化/序列化这些blobs的技巧。通过SQL这样做可能是可能的,但通过C#实现可能会更简单。
有什么方法可以做到这一点(除了IScript)吗?基本上我是在寻找一种机制
IScript似乎是最接近的东西--想知道是否有更好的东西。
发布于 2018-08-07 10:49:24
是-见https://dbup.readthedocs.io/en/latest/usage/#code-based-scripts
基于代码的脚本(有时迁移)可能需要比在SQL中执行更容易或可能更多的逻辑。基于代码的脚本提供了在代码中生成SQL的工具,并提供了一个开放的数据库连接和一个System.Data.IDbCommand工厂。 基于代码的迁移是一个实现IScript接口的类。当要执行迁移时,将调用ProvideScript()方法,因此已经执行了之前的脚本。 当然,命令工厂不仅可以用于查询。整个迁移本身可以在代码中执行: 公共类Script0006UpdateInCode : IScript {公共字符串ProvideScript(Func commandFactory) { var命令= commandFactory();command.CommandText =“创建表dbo.Foo";command.ExecuteNonQuery();返回”;}
https://stackoverflow.com/questions/51723613
复制相似问题