Mysql 如何与Git(或à;la Git)同时使用数据库

Mysql 如何与Git(或à;la Git)同时使用数据库,mysql,json,database,git,sqlite,Mysql,Json,Database,Git,Sqlite,我们目前使用JSON文件来存储配置系统所需的数据。我们使用Git作为版本控制系统 我们不时手动填充这些JSON:我们使用它来同时修改文本,例如,通过在数组中添加新元素和将更改提交给Git。另外,由于JSON是纯文本的,Git使我们在批准提交之前可以轻松地重新设置基础、创建或查看任何合并请求 然而,我们基本上使用这些JSON作为所有配置的数据库。我们认为这不是最好的选择。例如,在这些JSON中定义的结构(中的元素)之间存在大量的完整性约束,这些约束不明显,无法以任何方式强制执行。正如你所想象的,当

我们目前使用JSON文件来存储配置系统所需的数据。我们使用Git作为版本控制系统

我们不时手动填充这些JSON:我们使用它来同时修改文本,例如,通过在数组中添加新元素和将更改提交给Git。另外,由于JSON是纯文本的,Git使我们在批准提交之前可以轻松地重新设置基础、创建或查看任何合并请求

然而,我们基本上使用这些JSON作为所有配置的数据库。我们认为这不是最好的选择。例如,在这些JSON中定义的结构(中的元素)之间存在大量的完整性约束,这些约束不明显,无法以任何方式强制执行。正如你所想象的,当你添加新元素时,很容易忘记、违反或破坏事物

例如,这些结构和它们之间的关系可以很容易地根据表、主键和外键进行建模。因此,我们认为使用真正的关系数据库可能会获得一些优势,但我们强烈希望实现以下目标:

  • 必须仍然能够从源代码自动生成JSON DB实例(用于配置系统)
  • 我们希望以某种方式将Git与DB的并发使用结合起来,或者说,理想情况下,我们希望能够轻松创建实例的分支,创建合并请求,让其他人检查分支之间的差异,并最终批准它们

  • 对于上述要求,你知道什么好的策略或有什么建议吗?是否有针对上述问题(特别是问题2)的特定工具?有些技术曾经遇到过这种问题吗?任何使整个开发流程更安全、更简单的建议都将受到强烈欢迎。

    只需将数据库存储为纯文本即可:

    $sqlite3 config.db.dump>config.db.sql
    $cat config.db.sql
    PRAGMA外键=关闭;
    开始交易;
    创建表用户(名称主键);
    插入“用户”值(“我”);
    插入“用户”值(“您”);
    插入“用户”值(“某人”);
    创建表配置(名称、值、用户引用用户(名称));
    在“配置”值中插入('EnableBugs',0,NULL);
    在“配置”值中插入('enablebug',1,'you');
    在“配置”值中插入('BackgroundColor','000000','me');
    在“配置”值中插入('BackgroundColor','#ffffff','Someone');
    在“配置”值中插入('BackgroundColor','#808080','you');
    犯罪
    
    您有多少配置?使用配置文件有什么问题?因为这感觉有点复杂…很多数组,很多条目,一些关系。例如,不清楚哪些字段必须描述每个元素,哪些字段不是,等等。。元素字段之间的大量交叉引用。现在真的很难。我们也有不同种类产品的重叠会议。现在很难弄到这东西。