docs(readme): add "Migration from Docmost" section

Document migrating an existing Docmost instance to Gitmost. The DB schema
is a strict superset (additive-only migrations that auto-apply on boot), so
the move is essentially two image swaps; the only hard requirement is the
pgvector DB image for the page_embeddings RAG table (CREATE EXTENSION vector).

- Primary path: clean in-place swap from a Docmost on postgres:18
  (app -> ghcr.io/vvzvlad/gitmost, db -> pgvector/pgvector:pg18), no
  dump/restore, volume reused as-is.
- Notes: pg_dump backup first, identical PGDATA layout, matching the
  Postgres major (pg16 case), managed-Postgres caveat, AI opt-in.
- Added to both README.md and README.ru.md.
This commit is contained in:
vvzvlad
2026-06-18 00:03:24 +03:00
parent 41dfeeb77a
commit 81b103f40b
2 changed files with 85 additions and 0 deletions

View File

@@ -121,6 +121,41 @@ Gitmost повторяет процесс установки upstream-Docmost.
смотрите в [документации](https://docmost.com/docs) Docmost; где это применимо, заменяйте образ
`docmost/docmost` на `ghcr.io/vvzvlad/gitmost`.
## Миграция с Docmost
Схема БД Gitmost — это **строгий superset** схемы Docmost. Все Gitmost-специфичные миграции только
**добавляют** новые таблицы (`page_embeddings`, `ai_chats`, `ai_chat_messages`,
`ai_provider_credentials`, `ai_mcp_servers`) и **nullable**-колонки — они никогда не удаляют и не
переписывают существующие данные Docmost. Миграции применяются автоматически при старте, поэтому
миграция существующего инстанса Docmost — это по сути **замена двух образов**.
Единственное жёсткое требование — образ БД: RAG-хранилище AI-агента использует расширение
[pgvector](https://github.com/pgvector/pgvector) (`CREATE EXTENSION vector`), которого нет в
стоковом образе `postgres`. Замените его на `pgvector/pgvector:pgNN` — это тот же ванильный
Postgres со встроенным pgvector, собранный на базе официального образа `postgres` и полностью
data-совместимый с ним.
### С текущего Docmost на Postgres 18
Если ваш Docmost уже работает на `postgres:18`, это чистая замена in-place — без
dump/restore, существующий каталог данных переиспользуется как есть:
```diff
services:
docmost:
- image: docmost/docmost:latest
+ image: ghcr.io/vvzvlad/gitmost:latest
...
db:
- image: postgres:18
+ image: pgvector/pgvector:pg18
```
`APP_SECRET`, `DATABASE_URL`, `REDIS_URL` и том сторейджа остаются прежними. При первом запуске
новые миграции применяются поверх вашей схемы (`CREATE EXTENSION vector` плюс таблицы
`page_embeddings` и AI-таблицы); следите в логах за строками `Migration "..." executed successfully`.
## Возможности
- Совместная работа в реальном времени