清理 mysqldump 以跟踪 git 中的模式
Clean mysqldump for tracking schema in git
我想编写一组小 shell 脚本来帮助我在 git 中保留 MySQL 架构。但一个症结是 mysqldump -uuser -ppass -d devdb > schema.sql
包括两件事,即使没有模式变化也会随时间变化:
AUTO_INCREMENT=[some number]
在任何具有自动递增列 的 table 定义的末尾
-- Dump completed on [date and time]
最后
我在网上搜索了没有这些东西的转储方法,但无济于事。你能建议吗?或者我应该使用不同的命令或工具来获得用于版本控制的干净架构?
编辑:我刚刚找到 --skip-dump-date
选项,这样就解决了第 2 点,但我仍然无法在不丢失其他 table 属性的情况下摆脱自动递增数字(或者你怎么称呼那些东西)比如引擎和默认字符集。
无法绕过 #1,请检查 https://bugs.mysql.com/bug.php?id=20786。
如评论部分所述,您可以使用该 sed 命令将其过滤掉(除非您有一些使用它的 CREATE TABLE 语句)。
我想编写一组小 shell 脚本来帮助我在 git 中保留 MySQL 架构。但一个症结是 mysqldump -uuser -ppass -d devdb > schema.sql
包括两件事,即使没有模式变化也会随时间变化:
AUTO_INCREMENT=[some number]
在任何具有自动递增列 的 table 定义的末尾
-- Dump completed on [date and time]
最后
我在网上搜索了没有这些东西的转储方法,但无济于事。你能建议吗?或者我应该使用不同的命令或工具来获得用于版本控制的干净架构?
编辑:我刚刚找到 --skip-dump-date
选项,这样就解决了第 2 点,但我仍然无法在不丢失其他 table 属性的情况下摆脱自动递增数字(或者你怎么称呼那些东西)比如引擎和默认字符集。
无法绕过 #1,请检查 https://bugs.mysql.com/bug.php?id=20786。
如评论部分所述,您可以使用该 sed 命令将其过滤掉(除非您有一些使用它的 CREATE TABLE 语句)。