我用git控制来自网站的mysql数据库转储版本.
使用--skip-extended-insert,所以每条记录都在它自己的行上,它可以很好地跟踪变化.它还允许我从历史记录中提取旧版本的数据库并导入它们.
有没有办法告诉git忽略包含某些模式的某些行或行?
Git是基于文件的,它不会修改跟踪文件的内容以导出差异.
不要在数据库转储中包含您不关心的表/数据.如果没有创建差异,则无需采取额外步骤来忽略/纠正它.
因此,例如,如果问题是删除了您不想备份的文章,请将其从备份过程中删除:
mysqldump -c -w "articles.deleted IS NULL" articles > backup.sql
Run Code Online (Sandbox Code Playgroud)
对数据库转储进行后处理以删除您不关心的内容.举个例子,这是我使用的db dump helper脚本的摘录:
#!/bin/bash
mysqldump -dRC --skip-dump-date --skip-add-drop-table --default-character-set=utf8 database $@ > schema.sql
sed -i 's/ AUTO_INCREMENT=[0-9]\+//' schema.sql
Run Code Online (Sandbox Code Playgroud)
此示例(仅用于说明)从create table语句中删除自动增量值,以便它们不会在(版本控制的)schema.sql文件中生成差异.
| 归档时间: |
|
| 查看次数: |
1687 次 |
| 最近记录: |