我的架构经过多次迭代而演变。我有一组迁移,将架构从一个空数据库转移到一个包含几十个表和几十个列的数据库。
在此过程中,有几个表、列和约束的添加,有时(根据经验或新知识或规范中的更改)随后是删除或更改。有时,表或列名已被重新使用或重新调整用途。
现在,EF 迁移似乎完全能够通过创建、更改、删除、再次创建、更改等顺序运行,以获取最新的架构,但感觉不对。在极端情况下,可能会有几十个迁移创建表,然后是几十个删除表,直到最终模式可能是一个或两个表(我知道这不太可能)。从头开始到那些决赛桌的选择会感觉不错。
在我使用 ActiveRecord 迁移的 Ruby 日子里,有一个选项可以仅构建最终模式,而无需逐步执行,并且可能在此过程中撤消或重做工作。当然,这意味着在每次迁移后保持模式的完整 DDL 版本是最新的,但不知何故它感觉更优雅。
有没有人用实体框架做过类似的事情?