主な機能
- 読みやすいスキーマ言語
- テーブル、論理型、主キーと外部キー(->)、インデックス(部分インデックス・式インデックス)、チェック制約、列挙型を .tabliva ファイルに記述します。方言固有の指定は注釈(@postgres(type: "jsonb"))で、ビュー・トリガー・関数は生の sql ブロックで追加します。エディタには構文の色分け、入力補完、検索があります。
- 双方向の ER 図
- 入力に合わせて図が更新されます。構文エラーのときは最後の正しい状態が残り、エラーは行番号付きで表示されます。図でテーブル・列・リレーション・インデックスを追加、名前変更、削除したり型を変えたりすると、該当するコードの行だけが書き換えられ、コメントは残ります。レイアウトは別ファイル(diagram.tabliva-layout.json)に保存されます。
- 問題:55 のルール
- キー、信頼度付きの不足している外部キーの提案、型(例:金額に float)、インデックス、データの重複、命名、構造、方言との互換性。各問題にはわかりやすい説明と修正があり、安全な修正はまとめて適用できます。無視やルールの無効化は kurallar.tabliva ファイルに書き込まれます。
- 正規化
- 関数従属性はコードの depends 行で定義するか、列名から提案されます。テーブルごとに第 1 正規形から BCNF までの段階、前後を比較できる修正(別テーブルへ移動、新しいテーブル、子テーブル、意図的なコピー)、方言に合わせたデータ移行 SQL が表示されます。
- 変更計画とマイグレーションファイル
- コードを比較対象(マイグレーションフォルダ、スナップショット、デスクトップではライブのデータベース)と比べます。名前の変更を検出し、各ステップにデータ損失、テーブルの書き換え、ロックなどのリスクを表示します。SQL は PostgreSQL、MySQL / MariaDB、SQLite 向けに生成され、マイグレーションファイルは日付付きの名前で migrations/ フォルダに書き込まれ、チェックサムが tabliva.sum に追加されます。
- 既存スキーマの読み込み
- SQL ダンプ(pg_dump、mysqldump、SQLite の .schema、手書きの CREATE TABLE)、DBML、ほかの Tabliva プロジェクトを読み込みます。テーブルごとに 1 ファイルか、1 つのファイルかを選べます。読み込むのはスキーマだけで、INSERT と COPY の行は飛ばします。デスクトップではデータベースから直接スキーマを読むこともできます。
データ処理とプライバシー
Tabliva はプロジェクトファイルをこのデバイス(ブラウザの IndexedDB ストレージ、または結び付けたフォルダ)に保存し、どのサーバーにも送信しません。読み込んだ SQL と DBML のファイルはデバイス上で読み取ります。ライブのデータベースにはデスクトップアプリからのみ、ユーザーが接続したときだけ、このコンピュータから直接接続します。スキーマとクエリは FigBell を経由しません。保存を選んだパスワードはオペレーティングシステムのキーチェーンに暗号化して保存され、バックアップや書き出しには含まれません。
