版本控制SQLite数据库(仅限架构)的好方法(或工具)是什么?

前端之家收集整理的这篇文章主要介绍了版本控制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.f2er.com/sqlite/197681.html

猜你在找的Sqlite相关文章