应用启动时出现错误:database "memoluck" does not exist
Render PostgreSQL 可能不允许通过应用代码创建数据库。最简单的方法是在 Render 中手动创建。
-
进入 Render PostgreSQL 服务
- 在 Render Dashboard 中找到你的 PostgreSQL 数据库服务
- 点击进入详情页
-
使用 Render 的数据库工具(如果有)
- 查找 "Connect" 或 "SQL Editor" 选项
- 如果可用,直接运行:
CREATE DATABASE memoluck;
-
或使用外部工具连接
- 复制 Render PostgreSQL 的 External Database URL
- 使用 DBeaver、pgAdmin 或其他 PostgreSQL 客户端连接
- 运行:
CREATE DATABASE memoluck;
如果 Render PostgreSQL 已经有一个默认数据库(通常是 postgres),可以直接使用它:
-
检查 Internal Database URL
- 在 Render PostgreSQL 服务页面
- 查看 "Connections" 部分的 Internal Database URL
- 注意 URL 末尾的数据库名称
-
更新环境变量
- 如果数据库名称不是
memoluck,有两种选择:- 选项 A:使用现有的数据库名称
- 直接使用 Internal Database URL(包含正确的数据库名)
- 在 Web Service 的
DATABASE_URL环境变量中更新
- 选项 B:创建
memoluck数据库(见方法 1)
- 选项 A:使用现有的数据库名称
- 如果数据库名称不是
代码已经实现了自动创建数据库的逻辑,但可能受到 Render 权限限制。
如果自动创建失败,请使用方法 1 或方法 2。
部署后,检查日志应该看到:
- ✅
Successfully connected to database 'memoluck'或 - ✅
Database 'memoluck' created successfully或 - ✅
Database tables initialized successfully
- ✅ 代码已添加自动数据库创建逻辑
- ✅ 代码已添加错误处理和回退机制
- ⏳ 需要在 Render 中创建
memoluck数据库或使用现有数据库