目前我们正在使用 mercurial 和 tortoise HG 的 GUI 来管理存储库,我们的存储库是在 bitbucket 上创建的。
现在我想将我的源代码部署到我的(暂存/测试)和生产服务器。我也用谷歌搜索过,但没有找到任何好的答案。
我也喜欢用 mercurial 管理我的 sql 数据库。是否可以制作我们的数据库版本?
请帮我!!谢谢
目前我们正在使用 mercurial 和 tortoise HG 的 GUI 来管理存储库,我们的存储库是在 bitbucket 上创建的。
现在我想将我的源代码部署到我的(暂存/测试)和生产服务器。我也用谷歌搜索过,但没有找到任何好的答案。
我也喜欢用 mercurial 管理我的 sql 数据库。是否可以制作我们的数据库版本?
请帮我!!谢谢
您不能将数据库存储在存储库中,但可以导出数据库。
您可以使用命令行 ( mysqldump
) 或 MySQL 数据库管理器导出数据库。但我建议编写一个命令行脚本,它会自动为您执行此操作(因为多次编写该命令很烦人)。
这是一篇关于将 mysql 数据库与 git(包含自动脚本)同步的文章,它应该可以帮助您。为 HG 重写这些脚本应该不难。
当你推送代码时,它只会被推送到 bitbucket 服务器。如果您希望您的服务器(或开发人员、测试或其他)获取代码,您将需要从服务器中提取代码(使用命令行命令hg pull
或在您的 GUI 中使用“拉”按钮执行此操作 - 谷歌应该帮助您找到它)。您的服务器无法自动执行此操作,因为它会提供安全问题。(如果有人可以访问开发人员帐户并且如果他推送一些代码会发生什么情况,这会做坏事,例如将客户的数据推送到另一台服务器?以及“数据库”部分。您应该只将结构保存在您的存储库中,不是用户数据等)。
好吧,您应该仅使用命令行(或 FTP 客户端或其他)在您的(测试)服务器上应用您的代码,因为:运行的脚本需要重新启动属性,或者如果您使用 PHP 服务器,您的数据库可能添加新表时需要更新)。