我想创建一个使用关系数据库的桌面应用程序(例如postgres-最好的情况是在此应用程序中使用postgres)。
我希望用户不了解数据库。目前,我必须将postgres安装到本地计算机上,并使我的应用程序与之通信。
我正在使用Go。
如何避免这种情况?
您正在寻找 嵌入式数据库 。
请不要捆绑安装程序并在无人看管的情况下运行它。后来去安装PostgreSQL的用户看到计算机上已经有PostgreSQL时会感到非常困惑,但是他们不知道为什么,安装了谁或密码是什么。
而是initdb在应用程序%APPDATA%或(用于多用户共享)中的应用程序内的新datadir %PROGRAMDATA%。设置一个自定义端口(不要使用默认的5432)。使用创建新服务pg_ctl register,使用NETWORKSERVICE或按运行或按需启动/停止pg_ctl。这样一来,您就不会妨碍现有的PostgreSQL安装或新安装,而只为您的应用提供私有的PostgreSQL。
initdb
%APPDATA%
%PROGRAMDATA%
pg_ctl register
NETWORKSERVICE
pg_ctl
但是,请为用户提供选择,而不是提供现有PostgreSQL的连接字符串。如果应用程序在您不希望使用自己的嵌入式副本时坚持使用自己的嵌入式副本,那将是一个痛苦。
通常,最好还是使用SQLite,H2,Derby,Firebird或其他嵌入式DB之一。