我使用数据库开发项目,这些数据库作为MySQL工作台文件维护,这是一个二进制文件。由于您无法轻易区分提交之间的二进制文件的差异,因此需要在提交之前更新该模式的SQL创建脚本。这样,您可以运行SQL文件的diff来查看更改的内容。
有时候,人们会忘记或者懒惰而不会更新SQL文件。如何使用subversion来要求包含工作台文件的任何提交都必须包含SQL文件?
答案 0 :(得分:2)
您可以在服务器上编写Hook脚本以满足此要求。
您可以使用pre-commit-hook检查它是否包含工作台文件,并检查它是否包含SQL文件...如果不中止提交。
答案 1 :(得分:1)
尽管khmarbaise的答案正在发挥作用,但我建议你提供更好的解决方案。而不是强制开发人员编辑SQL文件,尝试自动更新它。这意味着在构建过程的一个步骤中(假设您有一个构建过程)检查Workbench文件,如果是更新,请自动更改SQL文件。
答案 2 :(得分:0)
与您的问题不同,我发现工作台文件不是二进制文件。它们是压缩文件,包含xml格式的db模式。请参阅以下两篇文章:Is it possible to save MySQL Workbench files as plain XML?和Subversion diff for zipped xml file