docs: add sqlite to postgres migration runbook
This commit is contained in:
52
README.md
52
README.md
@@ -122,6 +122,8 @@ tar -czvf gitea-data-$(date +%Y%m%d).tar.gz data/
|
||||
docker exec postgres pg_dump -U gitea gitea > gitea-db-$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
> 如果当前生产服务仍在使用旧版 SQLite,请在迁移前停止 Gitea,并至少备份 `data/gitea/gitea.db` 和完整 `data/` 目录。完整流程见 [SQLite 迁移到 PostgreSQL](docs/sqlite-to-postgres-migration.md)。
|
||||
|
||||
### 恢复数据库
|
||||
|
||||
```bash
|
||||
@@ -137,55 +139,11 @@ cat gitea-db-20260327.sql | docker exec -i postgres psql -U gitea gitea
|
||||
|
||||
## SQLite 迁移到 PostgreSQL
|
||||
|
||||
如果之前使用 SQLite,需执行以下步骤迁移到 PostgreSQL:
|
||||
如果已有生产 Gitea 仍在使用旧版 Docker Compose 和 SQLite,不要直接启动最新 compose 覆盖数据库配置,也不要把 `gitea migrate` 当作数据搬迁命令。
|
||||
|
||||
### 1. 停止 Gitea(保留 PostgreSQL 运行)
|
||||
推荐流程是:停止旧 Gitea,冷备份 `data/gitea/gitea.db` 和 `data/`,更新到包含 PostgreSQL 的最新 commit,只启动空 PostgreSQL,用 `pgloader` 导入 SQLite 数据,最后启动 Gitea 并验证。
|
||||
|
||||
```bash
|
||||
docker compose stop gitea
|
||||
```
|
||||
|
||||
### 2. 备份现有数据
|
||||
|
||||
```bash
|
||||
cp data/gitea/gitea.db data/gitea/gitea.db.bak
|
||||
```
|
||||
|
||||
### 3. 修改 app.ini 数据库配置
|
||||
|
||||
编辑 `data/gitea/conf/app.ini`,将 `[database]` 段改为:
|
||||
|
||||
```ini
|
||||
[database]
|
||||
DB_TYPE = postgres
|
||||
HOST = postgres:5432
|
||||
NAME = gitea
|
||||
USER = gitea
|
||||
PASSWD = <你的 POSTGRES_PASSWORD>
|
||||
SCHEMA =
|
||||
SSL_MODE = disable
|
||||
PATH =
|
||||
```
|
||||
|
||||
> 注意:如果 docker-compose.yml 中已通过 `GITEA__database__*` 环境变量配置,则 app.ini 中的值会被覆盖,可不修改 app.ini。
|
||||
|
||||
### 4. 执行数据迁移
|
||||
|
||||
```bash
|
||||
docker compose exec gitea gitea migrate
|
||||
```
|
||||
|
||||
### 5. 重启 Gitea
|
||||
|
||||
```bash
|
||||
docker compose start gitea
|
||||
```
|
||||
|
||||
### 6. 验证
|
||||
|
||||
访问 Web 界面,确认用户、仓库数据完整。
|
||||
|
||||
> 迁移成功后 `data/gitea/gitea.db` 可以保留作为备份,不会影响 PostgreSQL 运行。
|
||||
完整步骤见 [docs/sqlite-to-postgres-migration.md](docs/sqlite-to-postgres-migration.md)。
|
||||
|
||||
## 常用命令
|
||||
|
||||
|
||||
Reference in New Issue
Block a user