Supabaseストレージ 連携

ご自身の外部 Supabase プロジェクト内のテーブルに、記事を行として公開します。スキーマ自動検出とフィールドごとのカラムマッピングに対応。

Supabase 連携では、Rankturn のデータベースではなく ご自身の外部 Supabase プロジェクト のテーブルに記事を直接公開します。公開した記事は選択したテーブルの 1 行として保存され、記事の各項目(タイトル・本文・スラッグなど)は、あなたが指定したカラムに書き込まれます。Supabase から直接コンテンツを読み込むブログやアプリ(例: Supabase をバックエンドにした Next.js・SvelteKit・Flutter のフロントエンドなど)に最適です。

接続は 3 ステップで行います。プロジェクトの情報を入力すると、Rankturn がプロジェクト内のテーブルとカラムを読み取り、記事の各項目をカラムに対応づけます。接続後は、記事の公開・スケジュール設定時に Supabase が公開先として表示されます。

Supabase の接続には有料プランへの加入が必要です。無料プランでは接続(およびテーブルの読み取り)はご利用いただけません。

入力した情報の保存方法については 認証情報とセキュリティ を参照してください。

接続

Supabase 接続ウィザードは 3 ステップで構成されます。設定 → 連携 を開き、Supabase カードの 接続 をクリックします(すでに接続済みの場合は 設定を編集)。

ステップ 1 — 接続情報

項目説明既定値
Supabase プロジェクト URLプロジェクトの URL(例: https://your-project.supabase.co)。Supabase ダッシュボードの Project Settings → API にあります。
サービスロールキープロジェクトの service_role キー。Project Settings → API → service_role にあります。Rankturn はこのキーでテーブル構造の読み取りと行の追加を行います。
データベーススキーマテーブルが属するスキーマ名。public

次へ をクリックすると、Rankturn は URL を確認し(安全のため内部・プライベートアドレスはブロックします)、プロジェクトに接続してテーブルを一覧表示します。

サービスロールキーは強力なシークレットで、プロジェクトへのフルアクセス権を持ちます。Rankturn は暗号化して保存し、再表示することはありません。後から 設定を編集 する際、キー欄は空欄です。保存済みのキーを維持する場合は空欄のまま、置き換える場合のみ新しい値を入力してください。

ステップ 2 — テーブルの選択

選択したスキーマ内で見つかったテーブルが一覧表示されます。記事を追加する 1 つのテーブルを選び、次へ をクリックします。

ステップ 3 — カラムのマッピング

選択したテーブルのカラム(各カラムにデータ型が併記されます)のドロップダウンと、各記事フィールドが並んで表示されます。妥当な対応づけがあらかじめ入力され(フィールドとカラムの対応づけ を参照)、任意に変更できます。

  • タイトル本文(Content)必須 です。両方をカラムに対応づけるまで完了できず、いずれかが未設定の間は警告が表示されます。
  • それ以外のフィールドは任意です。書き込みたくないフィールドは なし(None) を選択します。
  • このステップで コンテンツ形式ステータス値 も設定します(後述)。

接続 をクリックして完了します。Rankturn はまず接続テストを実行し、成功した場合のみ接続を保存します。

フィールドとカラムの対応づけ

標準的な手順では、プロジェクト側でセットアップ用のコマンドを実行する 必要はありません。Rankturn はサービスロールキーを使ってテーブルとカラムを読み取ります。

仕組み。Rankturn はプロジェクトのテーブル構造を読み取り、テーブルとそのカラム・型を取得します。それを直接読み取れない場合は、よくあるコンテンツ用テーブル名(postsarticlesblog_postscontentpagesblogsnewsstories)を探し、既存の行からカラムを推測します。内部のシステムテーブルは除外されます。読み取った内容は保存されるため、後で接続を編集する際に再度読み取り直す必要はありません。

自動対応づけ。テーブルを選択すると、Rankturn はよくあるカラム名(大文字・小文字を区別しない)に基づいて各記事フィールドのカラムを提案します。例:

記事フィールド一致するカラム名の例
タイトルtitlenameheading
本文contentbodytext
抜粋excerptsummarydescription
メタディスクリプションmeta_descriptionseo_description
スラッグslugurlpermalink
公開日時published_atpublish_datecreated_at
サムネイル URLthumbnail_urlthumbnailfeatured_imagefeatured_image_urlimage_urlcover_imageog_image
サムネイル代替テキストthumbnail_alt_textthumbnail_altimage_altimage_alt_textfeatured_image_alt
インライン画像images / inline_imagesjson/jsonb カラムの場合のみ)
タグtagsjson/jsonb/配列カラムの場合のみ)
カテゴリcategorycategory_name
ステータスstatus
文字数word_countwords
読了時間reading_timeread_time
更新日時updated_atmodified_atedited_at
著者authorauthor_namewriter
正規 URLcanonical_urlcanonicalcanonical_link
スキーママークアップschema_markupjson_ldjsonldstructured_dataschemajson/jsonb の場合のみ)

一覧には 更新日時(Updated At)作成日時(Created At) のフィールドも含まれ、それぞれ記事の最終更新日・作成日を保持します。各フィールドは記事が実際にその日付を持つ場合にのみ書き込まれます。1 点注意があります。created_at という名前のカラムは 作成日時 ではなく 公開日時(Published At) フィールドに対応づけられるため、公開日時で埋まります。記事本来の作成日をそこに入れたい場合は、作成日時 フィールドをご自身で対応づけてください。

自動対応づけはあくまで出発点です。すべての対応づけを確認し、誤ったカラムを指しているものは修正してください。なし のまま残したフィールドは書き込まれず、値を持たない任意フィールドは空で書き込むのではなくスキップされます。

スラッグによる行の再利用スラッグ フィールドをカラムに対応づけ、記事に固有のスラッグが設定されている場合、Rankturn はまずそのスラッグを持つ既存行を探し、重複を追加せず 更新 します。これにより、同じ記事を再公開しても 2 つ目のコピーが作られません。テーブルはあなた自身のものなので、Rankturn は対応づけたスラッグカラムを手がかりに、以前公開した行かどうかを判断します。なお、タイトルから自動生成されたスラッグはこの判断に 使用されません。異なる記事同士の衝突を避けるため、その場合は常に新しい行を追加します。再公開で更新したい場合は、固有のスラッグカラムを対応づけてください。

コンテンツ形式とステータス値

マッピングステップにある 2 つの設定が、記事データの書き込まれ方を制御します。

コンテンツ形式

コンテンツ形式 の設定は、本文 カラムに書き込む形式を指定し、サイトがそのカラムをどう表示するかに合わせます。

形式書き込まれる内容想定するフロントエンド
Markdown(既定)本文を Markdown 形式にしたもの。Markdown レンダラー(例: react-markdown)で表示する場合。
HTML本文を HTML 形式にしたもの。カラムを HTML として直接表示する場合。
プレーン書式をすべて除去したプレーンテキスト。マークアップなしのプレーンテキストが必要な場合。

ステータス値

ステータス カラムを対応づけると、Rankturn は公開のたびに固定のステータス語を書き込みます。この値は接続時に設定でき、既定は published です。サイトが想定する表記(例: publiclivepublished)に合わせてください。

画像

記事は複数種類の画像情報を持つことができ、それぞれカラムを対応づけ、かつ記事が実際にその画像を持っている場合にのみ書き込まれます。

  • サムネイル URL — 記事のカバー画像・アイキャッチ画像のリンク。テキスト/URL カラム(例: featured_imagecover_image)に対応づけます。
  • サムネイル代替テキスト — そのカバー画像の代替テキスト。テキストカラムに対応づけます。
  • インライン画像 — 本文内で使われている画像の一覧で、リストとして書き込まれます。自動対応づけは json/jsonb カラム(images または inline_images)にのみ提案します。リストがきれいに保存されるよう JSONB カラムに対応づけてください。

Rankturn は画像ファイル自体をプロジェクトにコピーしません。すでにホスティングされている画像の リンク(サムネイルのリンクとインライン画像のリンク)を書き込むだけです。サイトはそれらのリンクから画像を読み込みます。画像ファイルそのものを自前のストレージに置きたい場合は、それらのリンクから別途ダウンロードしてください。

ヒントとトラブルシューティング

「セットアップが必要」/ テーブルが見つからないサービスロールキーservice_role キーであること(anon キーではない)と、データベーススキーマ 名が正しいことを確認してください。読み取りにはサービスロールキーがテーブルを読み取れる必要があります。

接続テストに失敗するプロジェクト URLhttps://<project-ref>.supabase.co の形式)とサービスロールキーを再確認してください。プライベート・内部アドレスを指す URL も拒否されます。

サイト上で常に下書き扱いになるステータス カラムを対応づけ、ステータス値 をサイトが公開済みとみなす値(例: publishedpublic)に設定してください。

タグや画像が括弧付きのテキストとして保存されるタグインライン画像 はプレーンテキストではなく配列/JSONB カラムに対応づけてください。値が引用符付き文字列として保存されるのを防げます。なお カテゴリ の対応づけは単数で、プレーンテキストとして書き込まれます。

再公開で行が重複するスラッグ フィールドをカラムに対応づけ、記事に固有のスラッグを設定すると、Rankturn は新規追加の代わりに既存行を検索して更新します。

この連携の情報の暗号化と保存については 認証情報とセキュリティ を、スケジュール設定や自動公開については 公開とスケジュール を参照してください。