0

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

例如,假设我们使用的是 1.1 版,而软件升级到了 2.0 版。为了兼容,有些事情需要在 1.1 和 2.0 之间发生。

  • 1.2 添加新表
  • 1.3 移除一个旧表并更改一些字段名称
  • 1.4 增加表a和b的关系。

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

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

必须有某种框架,或者至少有推荐的做事方式?

4

1 回答 1

4

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

换句话说,你以正确的方式做事,但确实有框架。:-)

于 2011-03-04T10:27:39.033 回答