【问题标题】:SQL database engine to carry with Git project [closed]与 Git 项目一起携带的 SQL 数据库引擎 [关闭]
【发布时间】:2018-12-20 11:42:33
【问题描述】:

我正在使用 Node.js 和 MySQL 开发一个小型实验项目。该数据库只有大约 20 个表,每个表上的寄存器少于 100 个。我在两个不同的环境中使用这个项目,并希望更容易地更新数据库,包括架构和数据。所以我想用另一个更符合要求的引擎来替换 MySQL 引擎:

  • SQL;
  • 兼容Node js;
  • 易于安装/访问/携带;
  • 免费;

我认为 SQLite 可以解决我的问题,但我不确定单个数据库文件在由 git 管理时会如何表现。另一种选择是在线数据库,但我不知道任何 SQL 和免费数据库。

你有什么建议吗?

【问题讨论】:

  • 所以 GIT 你的模式,写一个数据的初始加载和 GIT。每当您克隆项目时,您都会运行架构创建和初始加载脚本,然后您就完成了。使用任何数据库

标签: mysql sql git sqlite


【解决方案1】:

我猜您的应用程序必须在克隆后第一次启动数据库时对其进行初始化。也就是说,它必须创建一些表并将行加载到其中。

您可以通过将数据库文件保存为二进制 git 对象来使用 SQLite 处理此问题。这应该可以正常工作,至少在 SQLite 的下一个版本出现并破坏数据库文件兼容性之前。

但更好的方法是创建一个 SQL 文件来进行数据库初始化,并将其存储在 git 中。它包含设置数据库所需的 CREATE TABLE 和 INSERT 操作。 (如果你够聪明的话,你会编写 SQL 代码,让它同时在 SQLite 和 MySQL 上运行:你将来可以切换数据库服务器。)

然后,当您的应用程序首次运行时,它会打开数据库软件并检查您的表是否存在。如果不是,您的应用程序会从您的 SQL 表中加载它们。

我猜当应用程序在多个地方运行时,您还希望共享插入到数据库中的信息。显然,共享数据库服务器是一种很好的 SQL 方式来做到这一点。

如果没有共享服务器,一个很好的方法是在您的应用程序中构建某种“保存”操作。它将为共享信息写出 SQL INSERT,然后您可以将其发送到另一个位置或提交到 git。

免费的公共共享数据库服务器?您最好的选择可能是在服务器租赁(“云”)服务之一的免费层虚拟机上运行 MySQL。 AWS 和 Azure 都提供免费套餐。 Digital Ocean 的小型虚拟机每月收费 5 美元。

【讨论】:

  • 这种初始化方法肯定是最好的,但我认为对于这样的小项目来说工作量太大了,因为对数据库的每次修改都必须保存到 .sql 文件中,以及插入。 SQLite 兼容性不是问题。 SQLite 3 自 2004 年以来一直保持向后兼容性。
猜你喜欢
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多