0

我想创建一个模块化系统。我的项目中存在关于迁移概念的问题。我需要一个关于创建模块和迁移的系列原则。例如,假设我正在创建一个 PersonService 模块并根据该模块的模型创建数据库,那么在该模块的下一个版本中我必须更改它的模型。我将向客户销售新模块,然后必须根据更新客户的数据库到新模型。这个过程必须自动进行。但我的问题是:

如何在客户系统中自动迁移我的数据库?

创建模块和数据库的重要原则是什么?

如果客户想安装旧版本的模块,客户可以更新数据库吗?

- - - - - - - - - - - - 编辑 - - - - - - - - - - - - - ------ 什么模型更好用?代码优先?数据库优先?还是....?

自动迁移是否会损坏客户的数据?

再次感谢

4

1 回答 1

1

您可以使用 Automatic Database Migrations 将最新版本的应用程序部署给客户,并且在下次运行时,如果您在 Migrations 文件夹中的 configuration.cs 文件中启用了 Automatic Migrations,它将更新。如果您有任何依赖于这些字段或表的逻辑,但您需要确保在迁移期间填充数据或禁用该逻辑,直到以某种方式填充数据之后。

如果您希望它们在初始安装期间始终从基线数据库开始,则要添加此功能,您需要在将现有字段或表添加到模型以及数据库之前启用迁移。如果您更新模型并希望将安装日期回溯到以前的模型版本,除非您构建大量代码以恢复到您从未创建的以前的迁移,否则您将不走运。

于 2013-04-23T05:05:09.883 回答