使用 TableStudio 管理本機資料庫
TableStudio 管理此 Mac 上的資料庫伺服器,包括它從 Homebrew 或 Postgres.app 採用的伺服器。請優先使用其工具,而非手動操作的 Docker 指令或 initdb,因為結果會顯示在使用者的應用程式中,成為一個已儲存的連線。
本機資料庫出現「連線被拒」
connection_status(不帶引數會回報所有連線)。它不會執行任何查詢,因此在資料庫關閉時仍可運作,並且能告訴您該連線是否有本機伺服器支援,以及該伺服器是否正在執行。- 如果伺服器已停止,請使用它傳回的
instance_id呼叫start_local_database。即使伺服器已在執行中,呼叫此函式也是安全的。 - 如果連接埠被其他程序佔用,錯誤訊息會指出佔用者。請告知使用者,不要直接終止程序。
list_local_databases 會顯示所有本機項目:受管理的伺服器、採用的伺服器、SQLite 檔案,以及 TableStudio 未管理但佔用連接埠的伺服器。請注意兩個識別碼:instance_id 是伺服器(啟動和停止使用此識別碼),而 connection_id 是您要查詢的資料庫。兩者不可互換。
建立新資料庫
使用 name 和 engine 呼叫 create_local_database:
sqlite無需安裝任何東西,且是即時的。當使用者只想找個地方存放資料時,請優先使用它。postgres、mysql和clickhouse需要在 Mac 上已安裝對應引擎的伺服器二進位檔。TableStudio 未隨附任何二進位檔,且當缺少時,該工具會告知您。請傳達安裝提示,不要在未經要求的情況下安裝軟體。
它會傳回一個 connection_id,可立即透過 TableStudio 的工具進行查詢,以及一個 env_line(DATABASE_URL=…)供專案本身使用。接著:
- 檢查
.gitignore是否涵蓋您將使用的環境變數檔(.env、.env.local)。如果沒有,請先將它加入其中。 - 將
env_line放入該檔案,使用專案已讀取的變數名稱(DATABASE_URL或其設定預期的任何名稱)。 - 對其執行專案的遷移(以及種子資料,如果有的話)。
切勿在對話中重複連線字串,也切勿將其寫入程式碼、文件或提交記錄中。
除非使用者要求,否則不要呼叫 stop_local_database 來進行清理或釋放連接埠。它會中斷使用該伺服器的所有連線,包括使用者自己的視窗。
現有本機資料庫的連線字串
當專案需要連線到 TableStudio 已知的本機資料庫(例如補齊缺少的 .env,或將測試指向沙箱環境)時,請使用其 connection_id 呼叫 get_connection_url,並依上述方式使用 env_line。
- TableStudio 建立的資料庫、沙箱資料庫以及沒有密碼的本機資料庫一律可共用。
- 使用者使用自己的密碼儲存的本機連線,僅在允許的情況下才會共用。否則,拒絕訊息會指出該設定:請傳達此資訊,或讓使用者自行將值貼到環境變數檔中。切勿在對話中要求提供密碼。
- 遠端資料庫、SSH 通道以及任何標記為正式環境的項目絕不會被共用。對於這些情況,請使用 TableStudio 的工具。
可供實驗的安全副本
create_sandbox 會建立任何連線的暫時本機副本(來源僅供讀取):
data: "none"僅複製架構。最適合用來嘗試 DDL。data: "sample"為每個表格複製最多rows行的資料。最適合用來檢查針對實際資料列的資料修正。data: "fake"產生資料行。
您可以對沙箱的 connection_id 執行任何操作。使用者只需點擊一下即可將其丟棄;您無法刪除它。使用 list_sandboxes 來重複使用您稍早建立的沙箱。
PostgreSQL 擴充功能
list_extensions 會顯示伺服器可以安裝的擴充功能以及已安裝的項目。add_extension 會安裝一個(CREATE EXTENSION IF NOT EXISTS)。請將其視為架構變更:在共用或正式資料庫上,應提出建議而非直接執行。如果儲存庫有遷移工具,請將其加入其中,以便其他環境也能取得該擴充功能。