ダッシュボード上でテーブルのデータを直接操作したとき、意図しない変更が即座に保存されて困った経験はないでしょうか。
Supabaseは2026年4月、ダッシュボードのテーブルエディタにトランザクション機能を追加しました。この記事では、何が変わったのか、どう使うのかを解説します。
この記事でわかること:
- テーブルエディタのトランザクション対応の概要
- 従来の即時保存との違い
- 有効化の手順
- Diff Viewを使った変更確認の流れ
テーブルエディタが「まとめてコミット」に対応
Supabaseは、PostgreSQLを基盤とするオープンソースのバックエンドプラットフォームです。ダッシュボードからテーブルの閲覧・編集・RLSポリシーの設定などを直接行えるため、SQLを書かずにデータ操作ができます。
今回追加された「Queue table operations」機能を有効にすると、テーブルエディタで行った挿入・編集・削除がその場でデータベースに反映されなくなります。代わりに変更をキューに積んでおき、Diff Viewで内容を確認してから cmd + S でまとめてコミットする流れになります。
これまでの課題
従来のテーブルエディタでは、セルを編集するたびに変更が即座にデータベースへ書き込まれていました。シンプルな操作ですが、複数のレコードをまとめて変更する場面では問題が起きやすい設計でした。
たとえば10件のレコードを修正している途中で誤ったデータを保存してしまうと、手動でロールバックするか修正し直す必要があります。また、複数の変更を「すべて成功か、すべて取り消し」のアトミックな単位として扱えない点も課題でした。
PostgreSQLはもともとACIDトランザクションをサポートしており、複数の変更を1つの操作として扱えます。しかしダッシュボードのUIがそれに対応していなかったため、GUIから直接操作する際はこの仕組みを活かせませんでした。
変更の流れ
Queue table operations有効化後のテーブルエディタは、次の3ステップで操作します。
1. 変更をキューに積む
挿入・編集・削除を行っても、データベースにはまだ反映されません。操作はキューに積まれ、画面上では変更前後を確認できる状態になります。
2. Diff Viewで確認する
コミット前に変更内容を一覧で確認できます。追加・修正・削除が色分けされて表示されるため、意図しない操作が混じっていないかチェックできます。
3. cmd + S でまとめてコミット
問題なければショートカットキーでコミットします。すべての変更が単一のトランザクションとしてデータベースに適用されます。コミット前であれば、キューを破棄して操作をやり直せます。
有効化の手順
- Supabaseダッシュボードにログインする
- 右上のプロフィールアイコンから「Account Preferences」を開く
- 「Queue table operations」を有効化する
機能の有効・無効はいつでも切り替えられます。無効にすれば従来の即時保存の動作に戻ります。
従来との違い
| 従来(即時保存) | Queue table operations | |
|---|---|---|
| 変更のタイミング | 操作ごとに即時反映 | コミット時にまとめて反映 |
| 変更前の確認 | なし | Diff Viewで確認可 |
| ロールバック | 手動で個別に対応 | コミット前にキューを破棄 |
| データ整合性 | 部分的な変更が残るリスクあり | アトミックに適用 |
同日(4月24日)には、RLSポリシーの動作をUIから直接テストできる「RLS Tester」も機能プレビューとして追加されています。ロール切り替えによって「ログイン済み/未ログイン」状態のSQLクエリを実行し、どのポリシーが評価されているかを確認できます。こちらもAccount PreferencesのFeature Previewsから有効化できます。
まとめ
Supabaseのテーブルエディタがトランザクション対応となり、複数の変更をDiff Viewで確認してから一括コミットできるようになりました。本番データをダッシュボードから直接操作する機会が多いプロジェクトでは、誤操作のリスクを下げる実用的な機能です。Account Preferencesから有効化できるため、試してみる価値があります。
