Skip to main content
生成スキーマは、コードが想定しているコンテンツの形です。Notionはコードと独立して変更できるため、 型が古くなっていても気づけないことがあります。pull --check は、そのずれをデプロイ前に見つけるためのコマンドです。
ローカルのスキーマと、NotCMSに同期された最新のスキーマを比較します。 Notionへの直接問い合わせや、ローカルファイルの更新は行いません。

何を変更として扱うか

  • データベース名とID。
  • プロパティ名と型。
  • セレクト・ステータス・マルチセレクトの選択肢。
整形、キーの順序、選択肢の順序では、スキーマの意味は変わりません。 生成ファイルがない場合や解析できない場合も、正しいとみなさずチェックを失敗させます。 意味的比較には、この機能を含む0.4.0より後のリリースが必要です。0.4.0はファイルの文字列を比較します。

いつ確認するかを選ぶ

編集者と開発者が別々に作業する場合は、両方を使うと役立ちます。 アプリが利用するワークスペースを対象にし、同期が完了してから確認します。

ワークフローに組み込む

生成スキーマ、CLI設定、lockfileをコミットし、CIではlockfileからインストールします。 ローカルとCIで同じSDK・CLIを使った上で、認証情報をCIのシークレットから渡します。
GitHub Actionsの完全な例には、 インストール、PR確認、日次実行、手動実行をまとめています。 fork・DependabotのPRにはシークレットが渡されないため、チェックは失敗します。 これを回避するために pull_request_target へ切り替えないでください。信頼できないコードに認証情報を渡すことになります。 ログにはスキーマ名や選択肢が出るため、適切なアクセス範囲のリポジトリで実行します。

チェックが失敗したら

終了コード 0 は一致、1 はずれまたは確認失敗です。メッセージを見て次の対応を選びます。
  • スキーマが変わった: 同期を完了させ、ローカルで npx notcms pull を実行します。影響するクエリと差分を確認してからコミットします。
  • ファイルがない・解析できない: npx notcms pull で再生成します。
  • 認証・ネットワークのエラー: 接続を直して再実行します。型の再生成では解決しません。
CIはずれを知らせる役割にします。Notionの変更をすべて自動で受け入れず、 スキーマ更新もレビューできるコード変更として扱ってください。