【问题标题】:Is there such a thing as a language-agnostic sqlite schema?是否存在与语言无关的 sqlite 模式之类的东西?
【发布时间】:2012-11-15 18:32:20
【问题描述】:

背景

我一直在使用基于相同 sqlite 数据库结构但以不同语言运行的几个移动应用程序。你猜对了,涉及到 ObjC(iOS) 和 Java(Android)。出于数据共享和互操作性的考虑,我想对这个模式进行标准化(有大小写差异、表命名差异、结构差异等)。作为奖励,我希望能够将某种模式表示检查到源代码控制中并控制模式的不同版本。

问题

虽然我了解创建的 sqlite 数据库实例包含架构信息,但我不相信分发空白 sqlite 数据库是共享该架构的最佳方式。例如,Android 提倡使用 a helper 以编程方式创建和/或升级 sqlite 数据库。

但如果我有代码构建/升级数据库,那么它似乎会强制维护每种语言的编程模式。

问题

是否有其他选项或方法(除了预先构建的、包含元数据的空白 sqlite 数据库)可以在多种语言之间共享和标准化架构?那些可能是什么?这些选项可以存储在源代码管理中吗?可以在多个平台之间实现自动化吗?

非常感谢任何见解。我们可以与一次性版本一起跛行,但必须有更好的方法......

【问题讨论】:

    标签: database sqlite language-agnostic schema


    【解决方案1】:

    当我提出问题时,我通常会在网上搜索更多线索。看来可能有办法执行多行sqlite“脚本”:SQLite - Run multi-line SQL script from file?

    只需要验证我是否可以拥有静态“创建”脚本和“更新”脚本,分发脚本,并让各种平台使用它进行初始化...

    我会用我的发现更新这个答案。

    更新

    所以是的...通过一些管理,我可以为文件的每一行运行sqlite3_execexecSql 的批处理脚本。因此,我将源代码控制中的脚本作为有效的 sqlite 语句。应该是一个可行的解决方案......而且现在我考虑得更多了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      相关资源
      最近更新 更多