求助:Grails 3.3.x与PostgreSQL多租户按Schema启动失败
Grails 3.3.x 结合 PostgreSQL 实现多租户遇到的语法错误问题
有没有朋友成功在Grails 3.3.x版本中搭配PostgreSQL实现多租户功能的?我最近从Grails 3.2.11迁移过来后,这个功能彻底跑不起来了,卡在了语法错误上。
具体问题是这样的:
- 系统里的
DefaultSchemaHandler.groovy类生成的切换schema的SQL语句有问题。PostgreSQL要求设置schema的正确语法是SET SCHEMA 'schemaName',但这个类生成的语句是SET SCHEMA schemaName——少了关键的单引号。 - 启动时直接抛出连接异常,核心报错信息如下:
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "information_schema"
后续还会列出数据库里其他的schema名称,直到整个应用启动失败。
我尝试过想自己覆盖这个DefaultSchemaHandler类,但一直没找到可行的办法,而且搜了一圈居然没发现其他用户遇到过同样的问题,这让我有点懵。毕竟在3.2.11版本的时候,这个多租户功能是完全正常运行的。
有没有人遇到过类似情况,或者知道怎么解决这个语法问题的?
内容的提问来源于stack exchange,提问作者jondow
相关产品推荐
相关产品推荐

