CodeIgniter4对接PostgreSQL报relation不存在错误咨询
报错原因
CodeIgniter4 中 .env 配置文件的优先级高于 app/Config/Database.php 配置,你错误将PostgreSQL的端口号5432填写到了表前缀配置项database.default.DBPrefix中,导致框架执行SQL时自动给所有表名拼接了5432前缀,原本要查询的posts表被拼接为5432posts,而你的PostgreSQL库中不存在该名称的表,因此触发报错。
解决步骤
- 打开项目根目录的
.env文件,修改表前缀配置:
把database.default.DBPrefix = 5432修改为database.default.DBPrefix = ""
如果你实际业务有统一的表前缀,填写对应的真实前缀即可,不要误填端口号 - 清空CodeIgniter4的缓存目录
writable/cache/下的所有临时文件,重启Nginx服务生效 - 额外确认PostgreSQL的
igniter_db库中确实存在posts表,同时注意PostgreSQL对表名大小写敏感,如果建表时用了大写表名,模型配置的表名也要完全对应
内容的提问来源于stack exchange,提问作者Exurio
相关产品推荐
相关产品推荐

