我已经创建了一个新的serverpod项目,并为数据库和redis启动了docker容器。但是当我启动服务器时,我得到以下错误:Failed to connect to the database. Retrying in 10 seconds. PostgreSQLSeverity.error 42P01: relation "serverpod_runtime_settings" does not exist
我尝试了以下的入门步骤:https://docs.serverpod.dev/但仍然遇到这个问题。
1条答案
按热度按时间klh5stk11#
文档对此并不清楚,但是serverpod附带了一组数据库表,需要在运行服务器之前对其进行初始化。
从服务器项目运行:
**<container_name> 通常是
your_project_server-postgres
,但您可以通过运行$ docker ps
来找到确切的名称,假设容器正在运行。如果没有,则首先使用$ docker-compose up --build --detach
启动。**<db_name> 通常与
project_name
相同,但对于开发服务器,名称在此文件中定义:your_project/your_project_server/config/development.yaml
这是怎么回事?您需要创建数据库表,serverpod已经提供了用于此的代码,您所需要做的就是在数据库上运行它!
你可以在这个路径中找到sql代码:
your_project/your_project_server/generated/tables-serverpod.pgsql
上面的命令首先将pgsql文件复制到正在运行的docker容器中,然后使用第二个命令在数据库上执行sql代码!这意味着您将创建所需的所有表。作为参考,您可以在设置任何serverpod模块(如severpod_auth)时使用相同的方法,因为它们也带有一组数据库表,请参阅此处的文档:https://docs.serverpod.dev/concepts/modules。
也可以使用GUI工具,如https://www.pgadmin.org/或https://eggerapps.at/postico2/。然后连接到数据库,您可以在这些文件中找到用户名和密码:
your_project/your_project_server/config/development.yaml
和your_project/your_project_server/config/passwords.yaml
,使用localhost:8090作为地址(这是默认值)。然后将代码从pgsql文件复制粘贴到一个可以执行sql代码的窗口中,然后执行它。