使用bitbucket在登台和生产服务器上进行mercurial自动部署

时间:2013-04-17 05:45:09

标签: php mercurial tortoisehg bitbucket

目前我们正在使用mercurial with tortoise HG for GUI来管理存储库,我们的存储库是在bitbucket上创建的。

现在我想将源代码部署到我的(staging / test)和生产服务器。我也用谷歌搜索了同样但我没有找到任何好的答案。

我也想用mercurial管理我的sql数据库。是否有可能制作我们的数据库版本?

请帮帮我!! 感谢

2 个答案:

答案 0 :(得分:0)

您无法将数据库存储在存储库中,但可以导出数据库 您可以使用命令行(mysqldump)或MySQL数据库管理器导出数据库。但我建议编写一个命令行脚本,它会自动为你完成(因为多次编写该命令很烦人)。

Here是一篇关于将mysql数据库与git(包含自动脚本)同步的文章,它可以帮助你。为HG重写这些脚本应该不难。

当您推送代码时,它只会被推送到bitbucket服务器。如果您希望您的服务器(或开发人员,测试或其他)获得代码,则需要从服务器提取代码(使用命令行命令hg pull或使用“拉”按钮在GUI中执行 - 谷歌应该帮你找到它)。您的服务器无法自动执行此操作,因为它会提供安全问题。 (如果有人访问开发人员帐户并且他推送了一些代码会发生什么情况,例如将客户的数据推送到另一台服务器?以及“数据库”部分会出现什么问题。您应该只在结构库中保存结构,不是用户数据等)。

好吧,你应该只使用命令行(或FTP客户端或其他)在你的(测试)服务器上应用你的代码,因为:运行的脚本需要重启属性,或者如果你使用PHP服务器,添加新表时,您的数据库可能需要更新。

答案 1 :(得分:0)

如果您考虑数据库演变的版本控制,而不是数据库中的数据,则必须阅读Liquibase并使用database changelog file发布数据库更改。

简介:

  • Liqubase存储的模式中的每个更改(创建数据库也是强制性的零级更改)作为changelog
  • 使用changeset存储的更改日志,它引入了此更改(添加到以前的更改日志集)
  • 将项目从状态A更新到状态B假定将A :: B范围内的所有变更集应用于代码以及这些变更集中的所有数据库更改日志