当前位置: 首页 > 编程语言 > C#

C#学习教程:.NET迁移:在运行时设置和迁移多个数据库分享

时间:2023-04-10 16:50:10 C#

C#学习教程:.NET迁移:在运行时设置和迁移多个数据库只有1个数据库,它有很多。为什么?因为您可以即时创建站点的新“实例”。每个“实例”共享相同的代码库,但有自己的数据库。这些所有数据库都具有相同的模式(结构),但当然有不同的数据。不要问“你为什么不把所有东西都放在一个数据库中并使用InstanceId来知道哪个是”,因为这是一个业务策略问题。由于url,应用程序知道正在请求哪个实例。有一个额外的数据库可以执行此操作(我在设计时知道它的连接字符串)。该数据库只有2个表并将URL与“应用程序实例”相关联。然后,当然,每个“应用程序实例”都有其关联的连接字符串。当前情况:现在没有任何东西可以帮助我们同步保存每个实例的数据库(将模式更改传播到每个实例)。所以我们手工做,当然很乱。问题:我想使用rails-migration方式来处理架构变更,最好是migratordotnet,但如果设置起来更容易,也可以使用任何其他方法。问题是migratordotnet需要在proj.build文件中声明连接字符串,而我直到运行时才知道它们。真正有效的是在Application_Start上运行一些将最新迁移应用到每个数据库的方法。这如何通过migratordotnet或类似的东西来完成?欢迎任何其他建议。谢谢!由于这是一个老问题,我假设你有办法解决这个问题,但我还是会发布一个解决方案,这样就没有人会偶然发现这个问题。可以从代码而不是作为MSBuild目标调用MigratorDotNet:publicstaticvoidMigrateToLastVersion(stringprovider,stringconnectionString){varsilentLogger=newLogger(false,newILogWriter[0]);varmigrator=newMigrator.Migrator(provider,connectionString,typeof(YourMigrationAssembly).Assembly,false,silentLogger);迁移器.MigrateToLastVersion();}RedGate有一个SQL比较SDK,您可以使用。这是一个看起来很有前途的案例研究,但我不能告诉你它,因为我没有使用过它。下载试用版并试一试。您可以使用Mig#维护C#或.NET代码中的迁移:https://github.com/dradovic/MigSharp查看Fluent-Migrator。以上就是C#学习教程:.NETMigration:Settingupandmigrationmultipledatabasesatruntime分享所有内容。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: