blocklet server migrate コマンドは、Blocklet Server インスタンスをスケーリングするための重要なユーティリティです。このコマンドは、サーバーの基盤となるデータベースを、開発やシンプルなセットアップに最適なデフォルトの SQLite から、本番環境向けの PostgreSQL のような、より堅牢でスケーラブルなシステムへの移行を容易にします。
コマンドの使用法
移行を開始するには、migrate コマンドを使用し、ターゲットデータベースシステムを指定します。
移行コマンド
blocklet server migrate --dialect <dialect>オプション
| オプション | 説明 | 必須 | 許可される値 |
|---|---|---|---|
--dialect | 移行先のターゲットデータベースシステム。 | はい | postgres, sqlite |
このコマンドは、SQLite と PostgreSQL 間でのデータベース移行をサポートしています。主なユースケースは本番環境向けに SQLite から PostgreSQL にアップグレードすることですが、PostgreSQL から SQLite に戻すことも可能です。これは、開発やデバッグ用にポータブルなスナップショットを作成するのに役立つ場合があります。
仕組み
移行プロセスは、シンプルになるように設計されています。コマンドはまず、既存の SQLite データベースからインストールされている blocklet のリストとその他の重要な設定を読み取ります。次に、提供された接続詳細を使用して新しい PostgreSQL データベースに接続し、必要なテーブルを作成するためにすべての必要なスキーマ移行を実行し、データを投入します。

ステップバイステップガイド: PostgreSQL への移行
以下の手順に従って、Blocklet Server のデータを SQLite から PostgreSQL に移動します。
前提条件
開始する前に、以下の条件が満たされていることを確認してください:
サーバーが少なくとも一度は起動されていること
これは、最初の
blocklet server startコマンドが、移行ツールが読み取る必要がある SQLite データベースとテーブルを作成するために必要です。ターゲットデータベースの準備ができていること
PostgreSQL サーバーがインストールされ、実行中で、CLI を実行しているマシンからアクセス可能である必要があります。
PostgreSQL 接続 URL
PostgreSQL データベースの完全な接続文字列が必要です。
ステップ 1: ターゲットデータベースを設定する
CLI は PostgreSQL データベースへの接続方法を知る必要があります。これは、ABT_NODE_POSTGRES_URL 環境変数を設定することで行います。
環境変数を設定
export ABT_NODE_POSTGRES_URL="postgres://user:password@host:port/database"user、password、host、port、および database を実際の PostgreSQL の認証情報に置き換えてください。
ステップ 2: 移行コマンドを実行する
環境変数を設定したら、移行コマンドを実行します。プロセスはその進行状況を表示し、Getting blocklets... のようなメッセージで始まります。
移行の実行
blocklet server migrate --dialect postgresステップ 3: サーバーを起動する
コマンドが Migration postgres completed メッセージで終了したら、プロセスは完了です。最後のステップは Blocklet Server を起動することです。ABT_NODE_POSTGRES_URL 環境変数が存在している限り、サーバーは自動的に新しい PostgreSQL データベースに接続して使用します。
サーバーの起動
blocklet server startこれでサーバーは PostgreSQL 上で実行され、本番環境のワークロードに対応できる状態になりました。
トラブルシューティング
エラー: SQLITE_ERROR: no such table
Failed to get blocklets: SQLITE_ERROR: no such table: blocklets や dose not exist のようなエラーメッセージに遭遇した場合、それはほとんどの場合、初期の SQLite データベースが作成されていなかったことを意味します。
解決策: データベースを初期化するために、少なくとも一度はサーバーを実行する必要があります。blocklet server start を実行し、完全に起動するのを待ってから、blocklet server stop で停止します。その後、再度移行プロセスを試みることができます。