PostgreSQL创建gitea schema后Gitea提示该schema不存在的问题咨询
问题原因与解决方法
核心问题
你执行CREATE SCHEMA gitea;时,连接的是默认数据库(比如postgres),而非刚创建的gitea数据库,导致该schema并未创建在Gitea实际要使用的数据库中。
修正后的SQL操作步骤
CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea'; CREATE DATABASE gitea WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8'; -- 关键:切换到gitea数据库后再创建schema \c gitea; CREATE SCHEMA gitea; GRANT ALL ON SCHEMA gitea TO gitea; ALTER USER gitea SET search_path=gitea;
或者也可以直接指定数据库创建schema(无需切换连接):
CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea'; CREATE DATABASE gitea WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8'; -- 明确指定在gitea数据库下创建gitea schema CREATE SCHEMA IF NOT EXISTS gitea.gitea AUTHORIZATION gitea; ALTER USER gitea SET search_path=gitea;
验证方法
连接到gitea数据库,执行以下SQL确认schema存在:
SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'gitea';
内容的提问来源于stack exchange,提问作者user3142695
相关产品推荐
相关产品推荐

