我已经决定最终确定我的团队的部署流程,从头到尾。我们最后一个难点是管理数据库和运行时数据迁移/管理。以下是两个例子,尽管存在许多例子:
我感兴趣的是实现一个框架,允许开发人员管理和部署这些更改,同样方便我们管理和部署代码。
所以第一个问题是: 1。哪些工具/框架能够提供这种能力?
一般来说,这似乎是任何特定语言和平台的问题。在我的具体情况下,我正在部署一个.NET MVC2应用程序,该应用程序使用Fluent NHibernate进行数据库抽象。我已经在我的部署过程中有一个触发NHibernate的SchemaUpdate的工具 - 这太棒了。
我以自己的方式解决这个问题,是一个工具,它将扫描目标程序集中从某个抽象类继承的类(部署)。该抽象类公开了可以覆盖并实现自己的任意部署代码的钩子 - 在应用程序的代码库的上下文中。 Deployment类还提供了版本控制机制,该工具管理给定运行应用程序的当前“部署版本”。然后,自定义的NAnt任务将其与NAnt部署脚本粘合在一起,在适当的时间触发挂钩。
这似乎运作良好,并且确实符合我的目标 - 但这是我的牛肉,并导致我的第二个问题: 2。当然我刚刚写的东西已经存在了。如果是这样,你能指点我吗?和 3。有没有人开始沿着这条道路前进并深入了解这种方法的问题?
最后,如果这样的东西存在,但不存在于.NET平台上,请仍然让我知道 - 因为我对移植已知解决方案比对自己的解决方案从零开始更感兴趣。
谢谢大家,非常感谢您的反馈!
答案 0 :(得分:0)
每个主要版本都有一个脚本来创建具有您所需要的确切要求的环境。
对于次要版本,请将脚本拆分为各种版本并逐步更改环境。这个有很多好处