如何配置 Prefect 后端服务器指向 Postgres
How to configure Prefect backend server to point to Postgres
在本地将 Prefect 配置为 运行 时遇到困难。
通过 pip3 安装,取决于 docker(已安装)和 docker-compose,已安装,已测试。作品。
我已经有一个 运行ning Postgres 服务器,我想配置使用那个。但似乎 docker 中也使用了一个?感谢任何帮助。
当运行宁:
prefect backend server
prefect server start
nable to find image 'docker/compose:1.27.4' locally
1.27.4: Pulling from docker/compose (downloads en starts running docker)
Status: Downloaded newer image for docker/compose:1.27.4
WARNING: The PREFECT_SERVER_DB_CMD variable is not set. Defaulting to a blank string
WARNING: The DB_CONNECTION_URL variable is not set. Defaulting to a blank string
WARNING: The POSTGRES_DB variable is not set. Defaulting to a blank
WARNING: The POSTGRES_PASSWORD variable is not set. Defaulting to a blank string >
WARNING: The POSTGRES_USER variable is not set. Defaulting to a blank string.
如果您参考 prefect server start
的文档,您应该找到所需的所有信息:
prefect server start --help
...
--use-volume Enable the use of a volume for the Postgres service
--volume-path TEXT A path to use for the Postgres volume, defaults to
'~/.prefect/pg_data'
我遇到的问题与在Python中启动子进程的方式有关,Popen( docker-compose up, env=env )
当 运行 此命令时传递(当前)环境变量,但在某种程度上在子任务中不可用。
docker-compose up
我调整了 server.py 代码并即时创建了一个 .env
文件。测试并 docker-compose 找到并使用它。
真正的问题在于 bash/sh 终端环境,这就是我需要仔细研究的地方。
Prefect 现在允许您直接执行此操作,无需 运行 自定义脚本。
您只需指定 --external-postgres
标志。
prefect server start --postgres-url postgres://<username>:<password>@hostname:<port>/<dbname>
或者您也可以将其添加到 .prefect/config.toml
:
[server.database]
connection_url = "postgres://<username>:<password>@hostname:<port>/<dbname> "
在本地将 Prefect 配置为 运行 时遇到困难。
通过 pip3 安装,取决于 docker(已安装)和 docker-compose,已安装,已测试。作品。
我已经有一个 运行ning Postgres 服务器,我想配置使用那个。但似乎 docker 中也使用了一个?感谢任何帮助。
当运行宁:
prefect backend server
prefect server start
nable to find image 'docker/compose:1.27.4' locally
1.27.4: Pulling from docker/compose (downloads en starts running docker)
Status: Downloaded newer image for docker/compose:1.27.4
WARNING: The PREFECT_SERVER_DB_CMD variable is not set. Defaulting to a blank string
WARNING: The DB_CONNECTION_URL variable is not set. Defaulting to a blank string
WARNING: The POSTGRES_DB variable is not set. Defaulting to a blank
WARNING: The POSTGRES_PASSWORD variable is not set. Defaulting to a blank string >
WARNING: The POSTGRES_USER variable is not set. Defaulting to a blank string.
如果您参考 prefect server start
的文档,您应该找到所需的所有信息:
prefect server start --help
...
--use-volume Enable the use of a volume for the Postgres service
--volume-path TEXT A path to use for the Postgres volume, defaults to
'~/.prefect/pg_data'
我遇到的问题与在Python中启动子进程的方式有关,Popen( docker-compose up, env=env ) 当 运行 此命令时传递(当前)环境变量,但在某种程度上在子任务中不可用。
docker-compose up
我调整了 server.py 代码并即时创建了一个 .env
文件。测试并 docker-compose 找到并使用它。
真正的问题在于 bash/sh 终端环境,这就是我需要仔细研究的地方。
Prefect 现在允许您直接执行此操作,无需 运行 自定义脚本。
您只需指定 --external-postgres
标志。
prefect server start --postgres-url postgres://<username>:<password>@hostname:<port>/<dbname>
或者您也可以将其添加到 .prefect/config.toml
:
[server.database]
connection_url = "postgres://<username>:<password>@hostname:<port>/<dbname> "