使用Castle ActiveRecord更改生产系统的方法

时间:2011-05-20 17:44:04

标签: nhibernate castle-activerecord

我已经看过Castle ActiveRecord的一些演示,并且很高兴能够以多快的速度构建原型应用程序,但我担心一旦你的生产系统运行它会有多么有用。

理想情况下,如果我必须对系统进行更改,我可以继续以相同的方式进行开发,即对我自己与数据库的交互并不是真正关心,这对我来说是一个梦想。

但是,我知道在某些情况下,您可能会发现自己在ActiveRecord之外进行数据库调整,如果让ActiveRecord尝试更新您的架构,您将丢失或可能出错。

是否有人使用ActiveRecord(或类似版本)而不仅仅是原型设计,实际上是维护和其他功能,如果是这样,你的工作流程是什么样的?!

我的预期用途是多商店,多语言电子商务解决方案。不是最复杂的应用程序,也不是最简单的应用程序!

山姆:)

1 个答案:

答案 0 :(得分:1)

我们将Castle ActiveRecord用于我们在此处编写的ASP.NET MVC 3应用程序。我可以告诉你一旦应用程序投入生产(几周后)我们计划做什么。

我们有一个四阶段的环境:

  • 开发
  • 测试
  • 分段
  • 生产

我们使用Git进行源代码控制,使用Jenkins进行持续集成。应用程序设置为在开发计算机的每次运行时自动删除/重新创建数据库(例如,使用Visual Studio 2010);我们有一个开发机器列表,应用程序检查当前正在运行的机器,看它是否应该删除/创建数据库。

当我们将Git中的更改推送到中央(裸)存储库时,Jenkins会检测到更改(通过轮询)。它构建应用程序,运行测试,将应用程序部署到我们的开发Web服务器上,并在我们的Development SQL Server实例上删除/重新创建模式和测试数据。

但这仅限于开发,快速原型制作很重要。对于其他三种环境的部署,我们计划为我们的服务器/基础架构组提供可以运行的打包部署文件。对于数据库部分,我们的数据库组将使用Red Gate的比较工具来比较环境与其先前环境之间的模式,并在必要时进行更新。因此,开发中的模式更改将“进行比较和更新”以进行测试,并测试到阶段,等等。

这使得这些部署不是自动的,但它确保我们不会影响这些环境中的数据。