微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用核心/模型数据库在不同的安装上进行小的更改以进行自定义,而无需重复代码

如何解决使用核心/模型数据库在不同的安装上进行小的更改以进行自定义,而无需重复代码

例如核心数据库如下所示:

Person  - Id,FirstName,LastName
Address - Id,Street,ZipCode

此模型用于大多数安装,但对于一些安装,我想添加自定义列,假设列 StateAddress 用于客户 X 和 BirthDate为客户 Y Person

现在,我不想将这些列添加到核心数据库中,因为 State 列仅由我们的美国客户使用,而 BirthDate 仅由我们的欧洲客户使用 {{ 1}} 是强制性的 (BirthDate),因此所有其他客户都需要一个虚拟值。

我在 GitHub 中检查了关于有几个分支 - NOT NULLCore - 但这意味着整个 US-Customer 解决方案将被复制到 Core 分支但是当 US-Customer 分支发生变化时,它不会更新 Core 分支,即基本上必须维护两个存储库。

是否可以在 US-Customersql Data Tools 中进行此类定制,如果定制的解决方案(例如 GitHub)只进行绝对必要的更改,而无需 {{1 }} 在 US-Customer 中抛出关于缺少表或任何其他错误错误

示例:

sql Data Tools 分支

Visual Studio

Core 分支

Person  - Id,ZipCode

US-Customer 分支

ALTER TABLE Address ADD State CHAR(2) NOT NULL

解决方法

没有非常简单的实现方法。如果您希望以 SSDT 方式完全做到这一点,那么您需要创建多个项目:

  • ProjectCore --> 将拥有所有共享对象。它不应该引用以下项目;
  • ProjectUS --> 将拥有美国的所有对象并将 ProjectCore 引用为 The same database;
  • ProjectEU --> 将拥有 EU 的所有对象并将 ProjectCore 引用为 The same database

ProjectUSProjectEU 都有自己的发布配置文件。您将在那里放置不同对象的完整定义,而不仅仅是 ALTER 语句。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。