我正在启动一个网站项目。我的计划是首先以一种基本的形式推出网站,然后在整个过程中添加网站功能。
我正在为我的DAL使用Subsonic 3,我希望随着网站的发展,数据库会经历多个版本。这意味着我需要某种版本控制和迁移工具。我知道Subsonic已经建立了迁移的可能性,但在我的场景中,我很难掌握如何使用这些工具。
首先是SimpleRepository模型,其中Subsonic“自动”处理迁移,因为我开发了我的网站。我可以在我的开发机器上看到它是如何工作的,但是我不确定如何使用它来处理部署。
在调用适当的方法时,Subsonic会在我的实际网站上运行必要的迁移吗?
在使用Simplerepository模型时,是否有某些方法可以在网站脱机时强制网站上进行所有必要的迁移? (否则我希望随机用户在迁移例程开始时会遇到严重的性能削减)
使用ActiveRecord模型,然后使用Subsonic.Schema.Migrator处理迁移会更好吗? (我怀疑是这样)
您是否了解任何有关如何使用迁移器处理此情况的良好资源? (我读过doc,但我无法拼凑出如何在实践中使用它的方法)
感谢收听/回复。
问候
Jesper Hauge
答案 0 :(得分:1)
我建议不要对现场网站进行迁移。 SubSonic的迁移确实可以使开发更简单,绝不能用于实时环境。说实话,即使使用SubSonic.Schema.Migrator,你仍然会遇到这样一个事实:重构数据库是一个非常难的问题。例如,使用管理工作室重命名表中的列是微不足道的,但后台发生的事情涉及创建一个全新的表并在重命名新表之前迁移所有约束,数据等。 我发现处理这个问题最有效的方法是:
您是否使用ActiveRecord或SimpleRepository是否需要ActiveRecord的额外功能/复杂性。
希望这有帮助
答案 1 :(得分:0)
我会使用易于使用的activerecord,你只需运行TT文件的任何更改,然后你只需构建或发布你的slution并完成???? SVN将保留您构建阶段的多个版本,因此如果您对其进行评分,则只需删除修订版。