sqlpad 是 Web Base 的 SQL 編輯器,可用於編寫和運行SQL查詢並可視化結果,通過 ODBC 支持 Postgres、MySQL、SQL Server、ClickHouse、Crate、Vertica、Trino、Presto、SAP HANA、Cassandra、Snowflake、Google BigQuery、SQLite 等。
開發環境
- WSL2 in Windows 10
在 Windows 10 安裝 WSL2 + Docker | 余小章 @ 大內殿堂 - 點部落 (dotblogs.com.tw)
通過 zsh + zim + powerlevel10k 讓 Windows Terminal + WSL2 的指令碼具有自動補完功能 | 余小章 @ 大內殿堂 - 點部落 (dotblogs.com.tw) - SQL Server in Linux
- SQLPad
運行 sqlpad
docker run --volume /mnt/d/src/lab/sqlpad:/var/lib/sqlpad --name sqlpad -d -p 3000:3000 -e SQLPAD_ADMIN="yao@aa.bb" -e SQLPAD_ADMIN_PASSWORD="pass@w0rd1~" sqlpad/sqlpad:latest
支援多種資料庫
sqlpad/connections.md at master · sqlpad/sqlpad (github.com)
訪問 sqlpad
http://localhost:3000,使用管理員帳號登入,不過現在裡面沒有資料

利用 docker-compose 建立資料庫開發環境
為了更快速的建立環境,使用 docker-compose.yaml 定義了 SQL Server 和 sqlpad 的環境設定,路徑為 D:\src\lab\sqlpad\docker-compose.yaml

docker-compose.yaml 內容如下:
version: '3'
services:
mssql:
image: 'mcr.microsoft.com/mssql/server:2019-latest'
hostname: 'sql2019'
#name: 'sql2019'
container_name: 'sql2019'
ports:
- 1433:1433
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=pass@w0rd1~
- MSSQL_PID=Express
sqlpad:
# To use Dockerfile at root of this project, use build instead of image
# build: ../../
image: sqlpad/sqlpad:latest
hostname: 'sqlpad'
#name: 'sqlpad'
container_name: 'sqlpad'
ports:
- '3000:3000'
environment:
SQLPAD_ADMIN: 'yao@aa.bb'
SQLPAD_ADMIN_PASSWORD: 'pass@w0rd1~'
SQLPAD_APP_LOG_LEVEL: info
SQLPAD_WEB_LOG_LEVEL: warn
SQLPAD_CONNECTIONS__sqlserverdemo__name: SQL Server Demo
SQLPAD_CONNECTIONS__sqlserverdemo__driver: sqlserver
SQLPAD_CONNECTIONS__sqlserverdemo__host: sql2019
SQLPAD_CONNECTIONS__sqlserverdemo__database: master
SQLPAD_CONNECTIONS__sqlserverdemo__username: sa
SQLPAD_CONNECTIONS__sqlserverdemo__password: pass@w0rd1~
volumes:
- '/mnt/d/src/lab/sqlpad/data:/var/lib/sqlpad'
#- '~/sqlpad/data:/var/lib/sqlpad'
切換目錄
cd /mnt/d/src/lab/sqlpad
執行 docker-compose
docker-compose up
執行結果,如下圖:

觀察一下運行的結果
docker ps -a
結果如下圖:

登入後新增一個查詢

根據需求建立圖表,下圖出自 sqlpad/sqlpad

volume 對應到 host 的資料夾如下圖

更多的範例
sqlpad/docker-examples at master · sqlpad/sqlpad (github.com)
sqlpad/kubernetes-examples at master · sqlpad/sqlpad (github.com)
設定
Configuration (sqlpad.github.io)
參考
SQLPad - Quick Start With Docker - DEV Community
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET