Strapi 3.6.3自定义安装选PostgreSQL时连接测试失败如何解决
问题排查与解决步骤
- 首先处理版本兼容性问题
Strapi 3.6.3官方推荐使用npm 6.x、Node.js 14.x LTS版本,你当前使用的npm 7.x依赖解析逻辑与6.x存在差异,Node.js 15.x为非LTS的奇数版本,存在API不兼容风险:- 先降级npm到推荐版本:执行
npm install -g npm@6 - 可通过nvm工具切换Node.js到14.x LTS版本,再重新执行创建命令测试
- 先降级npm到推荐版本:执行
- 验证依赖安装失败的具体原因
报错核心是临时目录下的pg相关依赖安装失败,你可以手动执行对应安装命令查看详细报错:
若报错为pg原生模块编译失败,先安装Ubuntu编译依赖:npm install --prefix /tmp/test-strapi-pg strapi-connector-bookshelf@3.6.3 knex@0.21.18 pg@8.5.1
依赖安装完成后重新执行Strapi创建命令sudo apt update && sudo apt install build-essential libpq-dev -y - 绕过创建阶段的依赖安装逻辑
你可以选择先创建默认配置项目再手动修改数据库配置,避免临时目录安装的问题:- 执行
npx create-strapi-app my-project --quickstart --no-run - 进入项目目录修改
config/database.js为你的PostgreSQL连接配置 - 在项目根目录执行
npm install pg@8.5.1安装pg依赖 - 执行
npm run develop启动项目验证连接
- 执行
- 校验PostgreSQL连接权限
手动执行psql命令验证你填写的参数是否正确,确认用户对目标数据库有操作权限:
若无法正常连接,调整PostgreSQL的用户权限后再尝试创建Strapi项目psql -h 127.0.0.1 -p 5432 -U 你填写的用户名 你填写的数据库名
内容的提问来源于stack exchange,提问作者Greggory Wiley
相关产品推荐
相关产品推荐

