本文へスキップ

毎日 TablePro をお使いですか?ライセンスで有料機能が使え、次のリリースを支えられます。 ライセンスを購入ライセンスで TablePro を支援

スキーマ、比較と同期

データベースの構造を変更し、二つのデータベースを揃えるための機能です。DDL を確認しながらテーブルを編集し、テーブル間の関係を見て、ステージングを開発環境に合わせ、別のサーバーやエンジンへテーブルをコピーできます。ここで紹介するのは Mac アプリの機能です。最後の節では iPhone と iPad を説明します。
MaciPhone・iPad

このページの有料機能:Compare & Sync (Starter)。その他はすべて無料です。

構造を変更する前に DDL を確認

Structure タブではテーブルのカラム、インデックス、外部キーと CHECK 制約をグリッドで編集します。変更は保存まで保留され、Preview SQL(⌘⇧P)で実行前に ALTER TABLE 文を確認できます。削除、型の変更、NOT NULL の追加や主キーの変更は、接続のセーフモードが Silent でも事前確認を求めます。

インデックスには lower(email) などの式をキーとして使えます。New Table も同じ方式でテーブルを作成し、SQL プレビューを随時表示します。外部キーをその場で変更できない SQLite、libSQL、Turso、Cloudflare D1 では、TablePro が確認用のテーブル再構築スクリプトを生成します。SQLite とローカル libSQL ファイルでは確認後に実行し、Turso、リモート libSQL、D1 では実行をユーザーに任せます。

reviews テーブルの Structure タブ。新しい CHECK 制約と新しいインデックスが保存を待ち、DDL プレビューが開いています。

テーブル間の関係を確認する

View ER Diagram は現在のスキーマのテーブルと外部キーを描き、主キーと一意キーからカラスの足記法の多重度を算出します。product_tags などの中間テーブルは一つの多対多の線にまとめます。図を PNG としてエクスポートしたり画像としてコピーしたり、外部キーを含む CREATE TABLE 文の SQL としてエクスポートできます。

図は確認して共有するためのスナップショットです。テーブルを変更する場所はキャンバスではなく Structure タブです。

shop スキーマのテーブルとリレーションを示す ER 図。product_tags は products と tags の間の多対多の線で表されています。

サイドバーのルーチン、トリガーとフォルダ

エンジンが対応する場合、サイドバーの各スキーマ配下にプロシージャ、関数とトリガーを表示します。ソースは読み取り専用タブで開き、コピーしたりエディタで開いたりできます。Redshift、CockroachDB、PGlite、SAP HANA では一覧表示しません。PostgreSQL のパーティションは親テーブルの下に表示します。

テーブルとビューのフォルダ

サイドバーのリストやツリーで、テーブルやビューをドラッグするか Move to でフォルダにまとめられます。フィルター欄はフォルダ内も検索します。フォルダは TablePro 内だけに存在し、サーバーに変更を加えません。iCloud Sync が有効なら、他の Mac にも同期します。

比較と同期

Compare & Sync:Starter プラン

ソースとターゲットを選ぶと、Compare & Sync は差のあるテーブルをすべて一覧表示します。二つのサーバーでも、一つのサーバー内の二つのデータベースでも構いません。指定すればビュー、ルーチンとトリガーも対象です。データモードではキーで行を対応付け、異なる値をすべてマークします。テーブルごとにフィルターと行数制限を設定でき、大きなテーブルの一部だけを比較できます。

生成するスクリプトは外部キーの順序に従い、ターゲット固有のクライアント向けに記述します。カラム削除、型の縮小、行の削除などデータを破壊する文は、その実行で許可するまで保留します。Read-Only に設定した接続はターゲットに選べません。比較を保存すれば、ワンクリックで再実行できます。

shop と shop_staging の Compare & Sync。長さの異なる列と、スクリプトへの追加を保留された DROP COLUMN が表示されています。

Copy To、Duplicate Database と Transfer To

Copy To はテーブル、ビュー、ルーチンとトリガーを、構造、データ、または両方として、保存済み接続の別のデータベースへ送ります。異なるエンジンにも対応します。書き込み前の確認画面では DDL、テーブルごとの予定行数、移行時に変わるカラム型をすべて表示します。例えば MariaDB の ENUM カラムは PostgreSQL で VARCHAR になり、許可値のリストは失われます。テーブルごとの WHERE 句と行数制限で、一部だけをコピーできます。

Duplicate Database は同じ接続内に、新しい名前でデータベース全体をコピーします。Transfer To はカラムの対応付けを指定して、別の開いている接続の既存テーブルに直接行を送り、ファイルは介しません。三つとも無料です。

MariaDB から PostgreSQL への Copy To のレビュー。各テーブルの想定行数、許可する値のリストが引き継がれないため Type changes に表示された二つの enum 列、CREATE TABLE スクリプト。

ユーザー、セッションと保守

PostgreSQL の VACUUM や REINDEX、MySQL の OPTIMIZE や CHECK などのテーブル保守は、実行前に SQL を表示します。エンジンが対応する場合、サイドバーからデータベースやスキーマを作成、削除、名前変更できます。

ユーザーとロール

Users & Roles は各ユーザーの権限を、サーバーから個々のカラムまでのツリーで表示します。権限の付与と取り消しは変更として保留し、実行前に SQL を表示するため、手書きの GRANT は不要です。

ユーザーとロール
PostgreSQL、MySQL、MariaDB、PGlite
MySQL サーバーの Users & Roles。SQL Preview に、app_reader ユーザーに shop.orders の total 列への SELECT を付与する GRANT が表示されています。

サーバーダッシュボード

Server Dashboard はライブセッション、サーバーメトリクスと遅いクエリを、選んだ間隔で更新して表示します。エンジンが許可する場合、その行から実行中のクエリをキャンセルしたりセッションを終了したりできます。どちらも接続のセーフモードを通します。SQLite、DuckDB、Typesense ではメトリクスだけを表示します。

サーバーダッシュボード
PostgreSQL、MySQL、SQL Server、SQLite、MariaDB、Amazon Redshift、CockroachDB、ClickHouse、DuckDB、Typesense
PostgreSQL サーバーの Server Dashboard。アクティブなセッションの一覧で長時間実行中の SELECT が選択され、Terminate ボタンが表示されています。

iPhone と iPad では

iPhone と iPad アプリは、テーブルのカラム、インデックスと外部キーを読み取り専用で表示します。接続が Read-Only でなければ、SQL エンジンのテーブル一覧からテーブルを空にしたり削除したりできます。

構造編集、ER 図、Compare & Sync、Copy To、Users & Roles と Server Dashboard は Mac アプリ専用です。

対応範囲

このページの各機能、Mac で必要なプラン、iPhone・iPad での対応範囲
機能
DDL プレビュー付き構造編集Mac: 無料iPhoneとiPad: カラム、インデックスと外部キーは読み取り専用
テーブル作成Mac: 無料iPhoneとiPad: 非対応
テーブルを空にする・削除するMac: 無料iPhoneとiPad: 無料
ER 図Mac: 無料iPhoneとiPad: 非対応
ルーチン、トリガーとテーブルフォルダMac: 無料iPhoneとiPad: 非対応
比較と同期Mac: Starter プランiPhoneとiPad: 非対応
Copy To、Duplicate Database と Transfer ToMac: 無料iPhoneとiPad: 非対応
ユーザーとロールMac: 無料iPhoneとiPad: 非対応
サーバーダッシュボードとテーブル保守Mac: 無料iPhoneとiPad: 非対応

知っておきたい制約

  • Compare & Sync が構造スクリプトを生成するのは、同じエンジンの二つのデータベース間だけです。MySQL と MariaDB は同じものとして扱います。それ以外の組み合わせは読み取り専用比較で、MongoDB の構造にはスクリプトを生成しません。異なるエンジン間のデータ同期では、値の書き込み方を確認するよう警告します。別のエンジンにテーブルを移すには Copy To を使ってください。
  • カラムの順序変更は、SQLite とローカル libSQL ファイルでは確認後にテーブルを再構築します。PostgreSQL、Turso、リモート libSQL、Cloudflare D1 では、TablePro が再構築スクリプトを生成し、実行はユーザーに任せます。
  • ER 図は読み取り専用で、スキーマ設計ツールではありません。
  • Server Dashboard で表示できるセッションとクエリテキストは、接続に使うアカウントの権限によって異なります。

TablePro を入手

TablePro はオープンソースで、無料で使えます。有料プランで Mac アプリに任意の機能を追加できます。
Mac 版をダウンロード

macOS 13 Ventura 以降Apple siliconまたはIntel

App Store からダウンロード

iPhoneとiPadiOSとiPadOS 18 以降

料金を見る