更新应用程序时自动迁移应用程序的数据库

时间:2011-03-04 10:22:15

标签: c# sql-server database-migration

我想知道是否有人知道如何根据版本自动管理和更新数据库的良好框架或建议。

例如,假设我们使用的是1.1版,并且该软件已升级到2.0版。对于要兼容的东西,有些事情需要在1.1和2.0之间发生。

  • 1.2添加了一个新表
  • 1.3删除旧表并更改一些字段名称
  • 1.4在表a和b之间添加关系。

因此,对于版本2.0在版本1.1数据库上工作,它需要在允许应用程序运行之前按顺序执行上述过程。

我们之前是如何做到的,因为我们在数据库中的字段中存储了版本号。类将继承基类并将其自身称为Update + 版本号,例如Update1.2。 每个类都将执行其所需的任务并更新版本号并继续执行该过程。

必须有某种形式的框架或至少是推荐的做事方式吗?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

使用迁移框架,例如MigratorDotNet,我们在公司使用,并且非常满意。随着应用程序的发展,您将添加更多迁移(以从迁移基类继承的类的形式,并覆盖两种迁移和迁移的方法;在这些方法中,您使用简单的API来发出SQL语句)。每次迁移都有一个序列号或时间戳,MigratorDotNet在数据库中维护一个表,用于跟踪已应用的迁移。在应用程序启动时,将应用必要的迁移,以便数据库始终匹配应用程序代码的要求。

换句话说,你是以正确的方式做到的,但实际上,它有框架。 : - )