Question:
我正在创建一个Asp.Net应用程序,它具有多租户数据架构,每个租户都有单独的数据库 . 当新租户注册时,我需要能够以编程方式从应用程序创建和部署数据库 . 维护模板数据库/模式/脚本并使用它在服务器上部署新数据库的最佳方法是什么 .
Note:
我使用.Net 4.0作为应用程序,使用SQL Server 2008 R2作为服务器 .
Current Workaround:
目前,在服务器上维护默认模板数据库 . 通过Visual Studio对数据库进行更改,以通过源代码控制维护版本控制 . 需要部署新数据库时:
-
使用Database.Create在服务器上创建新数据库 .
-
然后使用Transfer.TransferData将架构仅传输到新数据库 . 或者,使用Transfer.ScriptTransfer并将脚本存储在内存中以供后续部署使用 .
1 回答
您的部署应基于从头创建数据库的脚本 . 您所做的任何架构修改,都通过升级数据库架构的脚本来实现 . 有关该主题的更多扩展讨论,请参见Version Control and Your Database .
基于差异工具的部署的替代方案让你受到关于如何处理差异的工具决策的支配(对于大型表,如果工具决定进行基于副本的修改,这会变得非常危险)并且还会使您diff工具用于自动化的任何支持的怜悯,这使得失败/重试处理,我应该如何设置,......“有趣” .