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