Database Web应用部署和多个版本

Database Web应用部署和多个版本,database,deployment,versioning,web-applications,Database,Deployment,Versioning,Web Applications,我很想知道其他开发人员如何处理web应用程序的版本控制和部署不同的版本。最根本的问题是,当你部署一个新版本时,可能有人在使用你的web应用程序,此时他们没有的Javascript等客户端已经过时了 在客户端对媒体进行版本控制是很容易的,但是如果您需要对其进行版本化,那么您还需要对业务逻辑和数据库进行版本化,这可能会导致混乱 因此,我看到了几种处理方法: 部署新版本时,在站点上显示“升级”通知 版本标记客户端并拒绝从旧客户端源提交到新版本的任何提交。这很公平,但它并没有真正与持续部署齐头并进 连续

我很想知道其他开发人员如何处理web应用程序的版本控制和部署不同的版本。最根本的问题是,当你部署一个新版本时,可能有人在使用你的web应用程序,此时他们没有的Javascript等客户端已经过时了

在客户端对媒体进行版本控制是很容易的,但是如果您需要对其进行版本化,那么您还需要对业务逻辑和数据库进行版本化,这可能会导致混乱

因此,我看到了几种处理方法:

  • 部署新版本时,在站点上显示“升级”通知

  • 版本标记客户端并拒绝从旧客户端源提交到新版本的任何提交。这很公平,但它并没有真正与持续部署齐头并进

  • 连续数据库迁移-同时运行多个版本的应用程序(如果可能,将用户迁移到新版本)。这将需要对旧数据库模式的任何更新“前向移植”到新模式。对于部署来说似乎最具吸引力,但也可能非常复杂

  • >P>三中的某个地方。


    我应该注意到,我知道担心这类事情超出了大多数应用程序的需要,但我一直在思考它,我很想知道其他人是如何处理它的。

    有很多工具可以满足您的确切需求。比如Phing和Phingistrano。Git也使它变得简单,但不会显示脱机通知和DB部署。我建议不要在live server上进行自动部署,在登台时使用自动部署,在live server上使用手动部署。另外,在谷歌上寻找持续集成,并尝试teamcity

    复杂问题。检查以下答案: