【发布时间】:2018-06-08 09:22:25
【问题描述】:
首先我只讨论我的开发数据库(development.sqlite3)。
我最近刚刚意识到默认情况下数据库不受版本控制(在创建模型并切换分支并尝试创建相同的模型之后 - 我正在重做教程 - 我收到一个错误,指出它已经存在) .我检查了默认创建的 .gitignore 文件,确实它不受版本控制。
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
我觉得这有点烦人,实际上担心它不受版本控制,但我确信这种默认行为是有充分理由的。
为什么数据库不受版本控制?
同样,如果我这样做是个坏主意吗? (尽管我同意在完成对数据库的新 CRUD 后继续将数据库提交到 git 会非常烦人)。
我该怎么做呢? - 我会认为能够切换分支(不是主分支)并更改模型并知道当我返回主分支并知道我没有破坏任何东西时(如果我没有当然不会合并)。
【问题讨论】:
-
@evolutionxbox 不,我希望能够切换分支并为每个分支提供不同版本的数据库。
-
这不是分支的用途,但如果这是你想要的,我唯一能想到的就是为每个分支创建一个脚本来废弃和重建你的数据库。这样你就可以控制每个分支的数据库版本。
-
这不是分支的用途是什么意思?如果数据库受到版本控制,那么每个分支实际上都有不同的版本(就像任何其他受版本控制的文件一样)?好的,我可以说你有一个文件,其中根据分支应用了增量文件,我可以更好地表达这一点......
-
检查this answer。基本上,有两种方法的链接:github.com/cannadayr/git-sqlite,github.com/DataWraith/gitfilters(请参阅那里的 sqlite 过滤器)
标签: ruby-on-rails git sqlite