微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

版本控制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

希望有所帮助.

原文地址:https://www.jb51.cc/sqlite/197681.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐