環境移行
DigitalBase を別サーバーへ移す手順です。移行対象は PostgreSQL データベース・アップロードファイル・.env(設定) の 3 つ。モデル(HuggingFace キャッシュ)は移さなくても初回起動で再取得されます。
対象:管理者必要権限:サーバー管理者エディション:Ollama / vLLM
移すもの
| 対象 | 中身 | 方法 |
|---|---|---|
| PostgreSQL DB | チャット履歴・RAG 埋め込み(pgvector)・ユーザー・ボット・設定・監査ログ | pg_dump → psql |
| files | アップロードファイル・パイプライン成果物(FILES_DIR、既定 ~/.local/db/files) | tar / rsync |
.env | 設定(DATABASE_URL・モデル・認証・JWT_SECRET 等) | コピー |
| (任意)モデルキャッシュ | HF_HOME(既定 ~/.cache/huggingface) | コピー(省略時は再ダウンロード) |
| (任意)ライセンス | LICENSE_FILE_PATH の license.lic | コピー(下記注意) |
1. 移行元(エクスポート)
まずサーバーを停止して静止点を作ります。
db stop # or systemctl stop digitalbase
# DB ダンプ(pgvector 拡張・全テーブル含む)
sudo -u postgres pg_dump digitalbase > digitalbase.sql
# root で sudo 無し環境: su postgres -c "pg_dump digitalbase" > digitalbase.sql
# files(FILES_DIR。パスは .env の FILES_DIR を確認)
tar czf files.tar.gz -C ~/.local/db files
# .env
cp ~/.local/db/.env env.backup
2. 転送
scp digitalbase.sql files.tar.gz env.backup root@<移行先>:/tmp/
3. 移行先(インポート)
移行先で DigitalBase を先にインストールしておきます(DB ロール/データベースと pgvector が用意される)。まだ起動しないでください(空 DB のうちにリストアするため)。
# DB リストア(install 直後の空 digitalbase DB へ)
sudo -u postgres psql digitalbase < /tmp/digitalbase.sql
# files
tar xzf /tmp/files.tar.gz -C ~/.local/db
# .env(下記「.env の扱い」を参照して調整)
cp /tmp/env.backup ~/.local/db/.env
# 起動(起動時に不足スキーマがあれば自動 migration される)
db start
curl http://localhost:8000/health # → {"status":"ok"}
注意点
注意
ライセンスはハードウェアに紐付く場合があります。 ライセンスはマシン固有 ID(hardware UUID)で検証されるため、別サーバーへ移すと無効化されることがあります。移行先用のライセンス再発行が必要か、事前に確認してください。
補足
.env の扱い:
JWT_SECRETは引き継ぐと既存ユーザーのセッション/トークンが有効なまま。変えると全員再ログインになります。DATABASE_URL・FILES_DIR・LICENSE_FILE_PATHなどパス/接続先は移行先の構成に合わせて調整。- モデルや GPU メモリ配分(
VLLM_*)はそのままで OK。
補足
pgvector が必要:移行先の PostgreSQL に pgvector 拡張(例 postgresql-16-pgvector)が入っていること。DigitalBase のインストーラが導入するので、正規手順で入れていれば問題ありません。ダンプには CREATE EXTENSION vector が含まれます。
補足
バージョンを合わせる:移行元と移行先の DigitalBase バージョンは揃えるのが安全です(スキーマ差異を避けるため)。新しい移行先で古いダンプを読む場合、起動時 migration で吸収されますが、事前にバージョン確認を推奨します。
移行の検証
curl http://localhost:8000/healthが{"status":"ok"}- 管理画面でユーザー・ボット・チャット履歴が見える
- RAG ボットで検索 → 既存ナレッジがヒットする(pgvector が正しく移った証拠)