我们有一个使用PostgreSQL特定查询的Rails项目,所以即使在开发模式下使用sqlite也很不舒服。问题是,我喜欢跟踪数据库中的模式更改并省略请求运行迁移,我也喜欢用git跟踪db-data更改,因此我不需要转储数据库并加载它在我的机器上。所以基本上我只想做'git pull'并看到应用程序使用新的架构和数据。
这里有什么可行的策略? 我唯一想到的是使用一个简单的包装器,它接受一个sql查询,检查它是否有任何特定于db的部分并重写它以用于开发环境,这样我们仍然可以使用sqlite。还有什么?
答案 0 :(得分:2)
我不确定我理解你问题的所有细微差别 - 尤其是关于使用SQLite和PostgreSQL的评论。如果它是一个多DBMS系统,那么使用多个系统进行测试是好的;如果它是一个单一的DBMS系统,那么使用多个DBMS会让生活变得毫无意义。
另外,您谈到跟踪数据库中的架构更改...这是否与DBMS自己的系统目录分开存储架构更改的信息,或者您是否真的想要跟踪数据库架构更改(使用外部的东西)数据库 - 例如VCS)?
您还谈到跟踪“数据库数据更改”,我将其称为“数据库中表格中的数据”。同样,我不清楚你是否正在考虑从数据库中转储某种类型的数据,这些数据涵盖了前一天和之前的内容之间的差异,或其他内容。
这些问题可能是您在超过4小时内未收到回复的原因。
当你谈到一个“简单的包装”时,你并不是在谈论我称之为简单的东西。它必须解析任意SQL,确定它是否是特定于DBMS的,然后应用重写规则。这是一项不平凡的事业。获取在正确位置调用的包装器也可能非常重要 - 它取决于您用于访问DBMS的API集合等等。
还有什么?
所有上述内容都等于可怕的“ it depends ”答案。这取决于:
幸运的是,它仅略微取决于您的VCS或平台。
答案 1 :(得分:0)
如果我理解正确,您希望能够跟踪架构和数据更改。
事实上,这些是两件截然不同的事情 -免责声明 - 我在OffScale工作: - )