通过在部署后的提交后挂钩上生成转储,为项目实现GIT存储库,包括数据库结构。
我想要的是基于表结构最后一次更改的时间戳的文件的简单版本控制系统。
在找到this post并建议检查MySQL数据目录中的* .frm文件的日期后,我认为解决方案是基于最后一个日期作为生成文件的一部分来实现它。这是:
通过ls命令(类型为ls -la * .frm)找出数据库文件的最新日期时间(即/ var / lib / mysql / databaseX /)
< / LI>将该值(上次更改的文件)与某个文件(即/project/dump_2012102620001.sql)的值进行比较,其中数字对应于上次生成的转储。
如果文件时间戳在该日期之后生成mysqldump命令,否则忽略,因此转储不会生成 承诺改变GIT
不幸的是,我的Linux控制台/ bash概念距离不太强大,并且没有找到任何类似的脚本可供使用。
答案 0 :(得分:3)
您可以使用[[ file1 -ot file2 ]]
来测试file1是否早于file2。
last=$(ls -tr /path/to/db/files/*.frm | tail -n1)
if [[ dump -ot $last ]] ; then
create_new_dump
fi
答案 1 :(得分:1)
每次使用适当的mysqldump
命令转储表结构都可以为您节省很多麻烦,因为它相对轻量级,因为它不包含表内容。删除顶部的可变时间戳信息,并与之前的文件进行比较。如果不同则存储。