pgAdmin 使用的用户设置存储在 SQLite 数据库中。在此数据库中,存储了许多设置,例如首选项、用户帐户、自动发现的服务器等等。
由于 SQLite 是一个基于文件的数据库,它可以在文件系统中的任何位置,所以它不是为处理故障而设计的(不支持 HA)。示例:在 Kubernetes 等环境中,使用备用后端以避免在非临时存储上使用 SQLite 并允许设置数据库的 HA 可能很有用。
为了防止这种情况,pgAdmin 现在支持使用 config.py 文件中的新“CONFIG_DATABASE_URI”参数将用户设置存储在外部数据库中。
实现此功能的另一个原因是用户希望能够将他们的设置存储在 PostgreSQL 中以方便使用。
SQLite数据库的使用方法
为了使用 SQLite 数据库,请确保 CONFIG_DATABASE_URI 参数设置为空字符串,如 ''。默认情况下,它在 config.py 中设置为空字符串,因此如果您想使用 SQLite 数据库,则无需更改任何内容。
如何使用外部数据库
为了使用外部数据库,请确保 CONFIG_DATABASE_URI 参数设置为指定格式“dialect+driver://username:password@host:port/database”。请注意,目前我们仅支持使用 PostgreSQL 和 EDB Advanced Server 作为外部数据库,它们都使用“postgresql”方言。其他数据库可能有效,但不受支持。
注意:需要提前创建数据库。
如何使用 PostgreSQL 作为外部数据库
以下是使用 PostgreSQL 作为外部数据库的格式。
基本语法
postgresql://username:password@host:port/database使用特定模式
postgresql://username:password@host:port/database?options=-csearch_path=<schema name>注意:需要提前创建数据库和模式。
在 PostgreSQL 中,使用 pgpass 文件是一种常用的存储连接信息的方式,而不是在 URI 中指定密码。
设置 CONFIG_DATABASE_URI 后,在服务器模式下运行 setup.py 或在桌面模式下启动 pgAdmin 以自动创建数据库模式并开始使用它。
结论
在不首选 SQLite 的情况下,使用外部数据库服务器保存 pgAdmin 4 用户设置。在为配置数据库添加 HA 支持或避免在非临时存储上使用 SQLite 时,它很有用。
原文标题:How to use an external database for pgAdmin user settings
原文作者: Akshay Joshi
原文链接:https://www.enterprisedb.com/blog/how-use-external-database-pgadmin-user-settings




