DigitalBase Docs

環境移行

DigitalBase を別サーバーへ移す手順です。移行対象は PostgreSQL データベースアップロードファイル.env(設定) の 3 つ。モデル(HuggingFace キャッシュ)は移さなくても初回起動で再取得されます。

対象:管理者必要権限:サーバー管理者エディション:Ollama / vLLM

移すもの

対象中身方法
PostgreSQL DBチャット履歴・RAG 埋め込み(pgvector)・ユーザー・ボット・設定・監査ログpg_dumppsql
filesアップロードファイル・パイプライン成果物(FILES_DIR、既定 ~/.local/db/filestar / rsync
.env設定(DATABASE_URL・モデル・認証・JWT_SECRET 等)コピー
(任意)モデルキャッシュHF_HOME(既定 ~/.cache/huggingfaceコピー(省略時は再ダウンロード)
(任意)ライセンスLICENSE_FILE_PATHlicense.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_URLFILES_DIRLICENSE_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 が正しく移った証拠)

関連