我不知道你怎么打算做到这一点 - 如果我得到它的权利,你会希望保持one database (shared) in between number of web sites
- 然而,每个网站都有自己的会员表,用不同的前缀命名,对吧?
第一个问题是,for each Db/table name change - you need a 'code to match'
- 即代码第一个实体和代码,Db中的'迁移表'和表都是同步的 - 所以它可以像它应该一样工作。从这个意义上说,只是在Db中更改脚本或表名称将不起作用。 It has to be done at the level of attributes (as @Steven suggested) or fluent configuration.
而你的情况,这意味着在某种程度上你需要“建立”独立的配置为每个站点,分别(代码),它们部署到每个站点 - 并建立一个mega Db
包含所有各小variants
合并在一起。
这将很难管理 - 但你可以尝试(我上面描述的) - 我不知道它是否会工作(因为这需要很多'基础设施'来试试这个) - 但也许这些线路...
- 把
Table
属性(或通过流利配置)
- 构建代码 - “改变”的表名称为每个 - 和重建(理想情况下,你可能需要使用一些工具,代码生成器在批处理中自动执行此操作 - 即,您构建,复制外部文件,更改名称并重复)
- 为每种情况构建“迁移”(Ta ble name) - 将迁移 保存为文件 - 也可以使用
Update-Database -Script
保存每个案例(重要)的实际 脚本。
- 保存每次迁移 - 或者我们可以用 表示一个“脚本”来表示。
- 一旦这样做 - 你需要
merge
的 迁移 - 脚本 - 为one big master script
- 即除去 相同的一套表格(离开只是过程之一) - 复制所有 不同组的成员资格表。
- 从数据库中删除
migration table
- 为想肯定是不同步的,不会让你 做任何事情(或者还有一个标志代码,我觉得只是忽略 的是,没有它现在)。有关详细信息,请参阅下面我的其他 帖子。
- 部署一个主Db - 使用您创建的脚本
- 部署 特定代码 - 到每个站点。
- 祈祷它会所有的工作 :)
一定有什么东西更聪明 - 但另一方面,迁移不作出这样的情况下工作,所以这将是很难甚至是不可能的把这个关掉。
一些一般性的信息,可以帮助...
如何与现有数据库迁移同步 - 对生产方案面向,保持DB-S和CF相匹配。这不正是你需要的,但有一个详细的说明,要解决这里面我写了前一阵子可能的方式...
MVC3 and Code First Migrations - "model backing the 'blah' context has changed since the database was created"
总结...
什么对我的作品是使用更新的数据库的-Script
这与“移民区别”,你可以 手动应用为目标服务器数据库的SQL脚本(创建一个脚本,您应该 得到正确的迁移TABL插入的行等)。
如果仍然不行 - 你仍然可以做两件事情...(更多内)...
即使表被命名不同,我不认为会迁移工作,如果您在多个应用程序之间共享相同的数据库,因为EF仅创建一个“_MigrationHistory”表。 – jrummell 2013-03-25 13:41:15