跳至主要內容

每天都用 TablePro?購買授權即可使用付費功能,並支持下一版本的開發。 購買授權購買授權,支持 TablePro

結構、比較與同步

用於修改資料庫結構並保持兩個資料庫一致:查看 DDL 編輯資料表,了解資料表間關係,讓預備環境與開發環境一致,或將資料表複製到其他伺服器或引擎。本頁介紹的功能均在 Mac App 中,最後一節介紹 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 下的兩個列舉欄位(允許值清單不會一併轉移),以及 CREATE TABLE 指令碼。

使用者、工作階段與維護

PostgreSQL 的 VACUUM、REINDEX 或 MySQL 的 OPTIMIZE、CHECK 等資料表維護操作會在執行前顯示 SQL。引擎支援時,可在側欄建立、刪除和重新命名資料庫及結構。

使用者與角色

Users & Roles 以樹狀圖顯示每個使用者從伺服器到單一欄位的權限。授權和撤銷先作為暫存修改,並在執行前展示 SQL,因此無須自行撰寫 GRANT。

使用者與角色
PostgreSQL、MySQL、MariaDB、PGlite
MySQL 伺服器的 Users & Roles,SQL Preview 顯示一項 GRANT,授予 app_reader 使用者對 shop.orders 的 total 欄位的 SELECT 權限。

伺服器儀表板

Server Dashboard 依所選間隔重新整理即時工作階段、伺服器指標與慢查詢。引擎允許時,可從對應列取消執行中的查詢或終止工作階段,兩項操作均遵循連線的安全模式。在 SQLite、DuckDB 與 Typesense 上僅顯示指標。

PostgreSQL 伺服器的 Server Dashboard 列出作用中的工作階段,選取了一項執行時間較長的 SELECT,並顯示 Terminate 按鈕。

在 iPhone 與 iPad 上

iPhone 與 iPad App 以唯讀方式顯示資料表的欄位、索引與外部索引鍵。SQL 引擎的資料表清單可清空或刪除資料表,除非連線設為 Read-Only。

結構編輯、ER 圖、Compare & Sync、Copy To、Users & Roles 與 Server Dashboard 僅在 Mac App 中提供。

支援範圍

本頁各項能力、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 App 增加選用功能。
下載 Mac 版

macOS 13 Ventura 或更新版本Apple silicon或Intel

從 App Store 下載

iPhone與iPadiOS與iPadOS 18 或更新版本

查看價格方案