为新的 Label Studio 项目创建 postgresql 数据库后端

问题描述 投票:0回答:2

我正在创建一个本地 Label Studio 服务器来托管要在我们办公室进行注释的图像。我希望数据库后端是 postgresql 而不是 sqlite,并且位于特定目录中,而不是默认目录,并且与“data-dir”不同。我有一个通过网络工作的测试服务器,其中有各种机器在服务器上注释图像,但用于此测试的后端是 sqlite。

由于各种原因,我尝试获取 postgresql 后端数据库的所有尝试都失败了。某些命令会生成位于我所需目录中的 sqlite 数据库(有时名称为“postgresql”);其他人创建 postgres/pyscopg2 错误,但我认为它们是在花园小路上。

主机运行的是 Ubuntu 20.04 LTS。并使用其他 API 通过网络提供另一个 postgresql 数据库。运行的Postgresql版本是12.9.

我已经创建了一个 conda 环境,并按照文档的建议 pip 安装了 Label Studio。

这是我尝试过的:

启动conda环境。按照 https://labelstud.io/guide/storedata.html#PostgreSQL-database 中的说明分配环境变量,在撰写本文时为:

DJANGO_DB=default
POSTGRE_NAME=postgres
POSTGRE_USER=postgres
POSTGRE_PASSWORD=
POSTGRE_PORT=5432
POSTGRE_HOST=db

然后是启动命令的一些变化(我没有包含反斜杠,只是为了可读性/可比性而放在这里):

label-studio start --init \
-db postgresql \
--database /path/to/label-studio/databases/newdb \
--data-dir /path/to/label-studio/media_dirs/test_proj

结果:db 符合预期,但是:

file newdb

给出“newdb:SQLite 3.x数据库,最后使用SQLite版本3038002编写”

label-studio start --init \
--database /path/to/label-studio/databases/newdb \
-db postgresql \
--data-dir /path/to/label-studio/media_dirs/test_proj

结果:指定路径中名为“postgresql”的数据库仍然是一个 sqlite 数据库。这似乎反映了以下提到的错误:https://github.com/heartexlabs/label-studio/issues/1660

我还尝试了上面两个命令,省略了“--init”参数,得到了相同的结果。

然后我尝试在上面同一链接建议的命令前面添加一些内容:

DJANGO_DB=default label-studio start \
--database /path/to/label-studio/databases/newdb \
--data-dir /path/to/label-studio/media_dirs/test_proj

结果:psycopg2.OperationalError:致命:用户“postgres”的密码身份验证失败 致命:用户“postgres”的密码身份验证失败

DJANGO_DB=default POSTGRE_PASSWORD= label-studio start \
--database /path/to/label-studio/databases/newdb \
--data-dir /path/to/label-studio/media_dirs/test_proj

结果:psycopg2.OperationalError:fe_sendauth:未提供密码

任何帮助和解决方案将不胜感激。

另外,我不能用“label-studio”来标记它,因为我还没有相当达到创建新标签所需的声誉,所以如果有人愿意这样做,请谢谢!

postgresql sqlite
2个回答
0
投票

你的最后一个选择比其他所有选择都更接近。你有没有尝试过使用这个来运行 LS:

DJANGO_DB=default POSTGRE_NAME=<postgres_name> POSTGRE_USER=<postgres_user> POSTGRE_PASSWORD=<password> POSTGRE_PORT=<db_port> POSTGRE_HOST=<db_host> label-studio

当然,你必须自己运行postgres服务,正确配置它,创建数据库

<postgres_name>
,用户
<postgres_user>
并设置密码
<password>
,授予该用户访问权限。另外,不要忘记指定
<db_host>
(
localhost
?),
<db_port>
(
5432
?)


0
投票

您好,我有一个类似的问题。它没有连接我的 postgresql 数据库。如果我更改配置路径,则会出现错误:从 None 引发 JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError:期望值:第1行第1列(字符0)

© www.soinside.com 2019 - 2024. All rights reserved.