gitlab恢复清空PostgreSQL数据库中的所有表

如果你需要清空 PostgreSQL 数据库中的所有表,以确保一个完全干净的环境进行重新初始化或手动导入,最彻底的方法是删除并重建 public schema


1. 进入 GitLab 数据库控制台

使用 GitLab 内建的命令进入 PostgreSQL 交互界面:

1
gitlab-psql

2. 执行清空命令

psql 提示符(通常显示为 gitlabhq_production=#)下,依次输入以下 SQL 语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- 1. 删除整个 public 模式(SCHEMA),CASCADE 会自动删除下属的所有表、视图、索引
DROP SCHEMA public CASCADE;

-- 2. 重新创建 public 模式
CREATE SCHEMA public;

-- 3. 将权限授予 gitlab 用户(这是 GitLab 运行时的默认账号)
GRANT ALL ON SCHEMA public TO gitlab;

-- 4. 将权限授予所有者(通常也是 gitlab 或 gitlab-psql)
GRANT ALL ON SCHEMA public TO "gitlab-psql";

-- 5. 退出
\q

3. 验证是否清空成功

退出后,你可以尝试列出所有表,确认结果应为空:

1
gitlab-psql -c "\dt"

如果输出显示 No relations found.,说明数据库已经彻底清空。