Asp.net Rake策略、DotNet实现

Asp.net Rake策略、DotNet实现,asp.net,rake,database-versioning,Asp.net,Rake,Database Versioning,去年在阅读和使用Rails时,给我留下最深刻印象的工具之一是Rake。一个数据库版本控制系统,它将所有dev db的相同部分集成到构建中……类似的东西会让生活变得更加轻松(和安全) 然而,有一件事我还没有弄清楚: 当您实际上无法访问生产服务器时,如何将这些更改移动到生产服务器?我们在全国有多台服务器,应用程序通过安装包安装/升级 注意:这个问题更多的是关于策略,而不是Rails/Rake特定的技术。我们不使用rails,而是使用.Net。但是,如果我能理解这个发布场景,似乎有几种工具可以让我们做

去年在阅读和使用Rails时,给我留下最深刻印象的工具之一是Rake。一个数据库版本控制系统,它将所有dev db的相同部分集成到构建中……类似的东西会让生活变得更加轻松(和安全)

然而,有一件事我还没有弄清楚: 当您实际上无法访问生产服务器时,如何将这些更改移动到生产服务器?我们在全国有多台服务器,应用程序通过安装包安装/升级


注意:这个问题更多的是关于策略,而不是Rails/Rake特定的技术。我们不使用rails,而是使用.Net。但是,如果我能理解这个发布场景,似乎有几种工具可以让我们做类似的事情。

您可以使用类似的工具来生成模式差异脚本,从而使数据库更新过程自动化。我已经手动使用该工具进行了这些更改,并且可以很容易地看到创建一个程序来运行这些更新,作为升级过程的一部分。但是,如果我要使其自动化,我会设计一些东西,使我能够检查模式的版本,并以适当的顺序运行必要的脚本,以使其达到所需的版本。

正如您可能知道的,在生产环境中运行迁移的标准Rails方法是。它有一个deploy:migrations任务,该任务使用ssh在远程服务器上运行迁移

你也许可以让Capistrano适应你想做的事情。它本质上是一种在远程服务器组上运行命令的灵活方式。要使用Ruby,您需要将Ruby安装在从部署到部署到的机器上,而不是安装在部署到的机器上


您最好的选择可能是编写一个自定义Capistrano任务来上载setup.exe,运行它,然后运行迁移(可能使用Migrator.NET)。

谢谢。我有一个比较工具,我们使用它来手动集成更改。但是Rake确实消除了上下移动版本的痛苦,这正是我感兴趣的地方。