版本控制SQLite数据库(仅限架构)的好方法(或工具)是什么?
任何人都可以建议一个好的方法(或工具)来控制SQLite数据库(仅限架构)吗?我正在尝试对SQLite数据库进行版本控制,我可以找到的唯一选项是使用GIT对版本控制整个文件,但此时我对数据不感兴趣,只是模式更改.
有什么建议? 谢谢 :-) 我有两个答案.如果您的sqlite足够轻且不经常更新,您可以将其添加到存储库中,而不会产生太多的影响/问题.但是可读性因差异而存在,因为它存储为二进制文件. sqlite3 git diff 以下是如何让git很好地展示你的差异: https://gist.github.com/peteristhegreat/a028bc3b588baaea09ff67f405af2909 git config diff.sqlite3.textconv 'sqlite3 $1 .dump' echo '*.db diff=sqlite3' >> $(git rev-parse --show-toplevel)/.gitattributes 现在,当您的sqlite db文件发生更改时,您可以通过git diff查看更改. 如果您只想查看模式的差异,只需将.dump更改为.schema,它只应执行create调用并跳过插入. 使用clean / smudge进入和退出存储库的sqlite3转换 如果您希望将db文件作为sql而不是作为db推送到存储库中,则可以使用git中的clean / smudge机制. https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#Keyword-Expansion https://github.com/gilesbowkett/git-smudge-and-clean 我还没有尝试过,但基本上每当你遇到一个db文件时,git就会使用sqlite3 $1 .schema export提交文件的精简版本(作为sql命令).然后当您从数据库中检出该文件时,它将使用cat $1 |转换回数据库sqlite3的. sqlite3始终保留最新文件 Right way of tracking a sqlite3 binary file in git? .gitattributes mysqlite3.db merge=keepTheir 希望有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |