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

des4xlb0  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(298)

我正在创建一个本地的Label Studio服务器来托管我们办公室中要注解的图像。我希望数据库后端是postgresql,而不是sqlite,并且位于特定的目录中,而不是默认的,也不是与“data-dir”相同。我有一个测试服务器在网络上工作,服务器上有各种机器注解图像,但后端是sqlite用于此测试。
由于各种原因,我尝试获取postgresql后端数据库的所有操作都失败了。有些命令导致一个sqlite数据库(偶尔名称为“postgresql”)位于我所需的目录中;其他命令创建postgres/pyscopg 2错误,但我认为它们是在花园路径上。
主机运行的是Ubuntu 20.04 LTS。并使用其他API通过网络提供另一个postgresql数据库。运行的Postgresql版本为12.9。
我已经创建了一个conda环境和pip安装标签工作室作为文件的建议。
以下是我尝试过的方法:
启动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

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

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


result: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:FATAL:用户“postgres”的密码验证失败FATAL:用户“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:未提供密码
任何帮助和解决方案将不胜感激。
另外,我不能用“标签工作室”来标记这个,因为我还没有达到创建新标签所需的声誉,所以如果有人想这样做,请谢谢!

p3rjfoxz

p3rjfoxz1#

你的最后一个选项比其他所有选项都更接近。你有没有试过用这个来运行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?)

相关问题