为了账号安全,请及时绑定邮箱和手机立即绑定

为用户无缝打包数据库到应用程序中

为用户无缝打包数据库到应用程序中

Go
叮当猫咪 2021-08-10 14:57:08
我想创建一个使用关系数据库的桌面应用程序(例如 postgres - 假设我最好的情况是在这个应用程序中使用 postgres)。我希望用户不知道数据库。目前,我必须将 postgres 安装到我的本地计算机并让我的应用程序与之通信。我正在使用 Go。我怎样才能避免这种情况?
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

您正在寻找嵌入式数据库

这对于 PostgreSQL 来说不是一个理想的工作,但是您可以稍微小心地以这种方式使用它。

请不要捆绑安装程序并在无人看管的情况下运行它。以后去安装 PostgreSQL 的用户会很困惑,当他们看到它已经在他们的电脑上,但他们不知道为什么,谁安装了它,或者密码是什么。

而是initdb在您的应用程序%APPDATA%或(对于多用户共享)中的新数据目录%PROGRAMDATA%。设置自定义端口(不要使用默认的 5432)。使用 来创建新服务pg_ctl register、作为 运行NETWORKSERVICE,或者使用 来按需启动/停止pg_ctl。这样您就不会妨碍任何现有的 PostgreSQL 安装或新安装,并且拥有一个专用于您的应用程序的私有 PostgreSQL。

不过,请为用户提供替代为现有 PostgreSQL 提供连接字符串的选项。如果应用程序在您不希望它们使用时坚持使用它们自己的嵌入式副本,那将是一种痛苦。

不过,通常最好考虑使用 SQLite、H2、Derby、Firebird 或其他嵌入式数据库之一。


查看完整回答
反对 回复 2021-08-10
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

简短版本,你真的不能,你最好的选择是使用SQLite或类似的。

长版本,好吧,如果你真的想要,你可以为你的数据库创建多个无人值守的安装程序,以你想要的每个平台为目标,将它嵌入到你的应用程序中,并在第一次运行时安装它。

现在这很丑陋,大多数用户(包括我自己)根本不会使用它。

您可以随时提及您的软件依赖于 X 和 Y,并提供有关如何手动安装依赖项的信息。


查看完整回答
反对 回复 2021-08-10
  • 2 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信