貼上 SQL,產生 ER 圖與資料字典
ErdDocs 用你已經有的資料庫結構產生 ER 圖。貼上 SQL dump、Prisma 結構或框架的 migration,就會得到互動式的 ER 圖。同時還有一份可以直接列印的資料字典,列出每個資料表、欄位、型別與關聯。免註冊、免安裝。結構只在你的瀏覽器裡分析,不會離開你的電腦。
不會上傳任何東西。結構只留在這個瀏覽器裡。重新開啟分頁時,最後貼上的結構會回來。清除網站資料後,它就會被刪除。
使用方式
把 SQL dump 變成 ER 圖與資料字典:
- 01匯出結構:PostgreSQL 用
pg_dump --schema-only,MySQL 用mysqldump --no-data。 - 02貼到上方面板,或直接把 .sql 檔案拖進來。
- 03閱讀 ER 圖:滑鼠移到資料表上會標示它的關聯,點一下即可固定。
- 04切換到「資料字典」分頁,裡面整理了欄位、型別、預設值、索引與關聯,可以列印成 PDF。
為真實的 dump 而做
正式環境的結構不是一串整齊的 CREATE TABLE 陳述式,所以解析器是用真實的結構測試的:pagila、sakila、GitLab、Discourse、WordPress、PrestaShop。每種格式讀得多好,是用 89 份公開結構量出來的。
- 分區資料表仍是一張資料表。 一份 dump 裡
payment有 55 個按月分區,畫出來仍只有一張payment卡片,而不是 56 張。 - 補回缺少的外鍵。 Rails 和 Django 專案常常一個外鍵都不在資料庫裡宣告。但欄位名稱還是說明了誰指向誰,這些關聯會用虛線畫出。
- 一個讀不懂的陳述式,不會拖垮整個檔案。 讀不懂的部分會跳過並回報,其餘的結構照樣畫出。
- 大型結構絕不截斷。 你貼上的所有內容都會解析並排好,包括有數百個資料表的結構。
為什麼選 ErdDocs
- 不只是圖,還有文件。 作業、稽核與交接真正要的,是和 ER 圖一起交出的資料字典。
- 免註冊、免安裝。 看到結果前不必建立帳號,也不必在專案裡安裝任何東西。
- 一次付清。 一個價格,而不是容易忘記取消的訂閱。
- 結構不會離開你的電腦。 分析在瀏覽器裡完成,結構不會傳到伺服器。貼上正式環境的結構,也不必擔心資料庫的設計外洩。
格式之間的轉換
ErdDocs 讀取十種格式、輸出八種,全部都在上方面板裡完成。下面的頁面各處理一種轉換,開啟時已經放好範例(頁面為英文):
- Prisma 結構轉 ER 圖:
schema.prisma產生的資料庫,連中介資料表一起。 - DBML 轉 ER 圖:dbdiagram 的語言,再加上不需要帳號的可列印資料字典。
- SQL 轉 PlantUML:把 dump 變成
.puml,不需要 JVM,也不需要 Graphviz。 - Mermaid ER 圖產生器:從十種輸入中的任一種,產生放進 README 的
erDiagram文字。 - DBML 轉 Mermaid:轉換結果旁邊附上圖,可以確認轉得對不對。
- SQLAlchemy model 轉 ER 圖:不用 pip,也不用 Graphviz,就能畫出 Python model。
- Sequelize model 轉 ER 圖:包括 association 隱含的鍵。
- Prisma 結構轉 SQL:不必安裝 CLI 就能得到
CREATE TABLE。 - Django model 轉 ER 圖:Django 建立的資料表,不需要 Graphviz。
- TypeORM 轉 ER 圖:以文字貼上的 entity,以及它們建立的中介資料表。
- Prisma 轉 DBML:給 dbdiagram 和 dbdocs 用,輸出旁邊附上圖。
- Prisma 轉 PlantUML:不需要 CLI,也不需要 generator 區塊,就能得到
.puml。 - MySQL ER 圖產生器:直接用 mysqldump 檔案,不必安裝 Workbench。
常見問題
資料字典是什麼?
它是資料庫的參考文件。每個資料表與欄位的資料型別、是否允許 NULL、預設值、索引與關聯,都集中寫在同一個地方。常用於課堂作業、專題、稽核和專案交接。ErdDocs 會用你貼上的結構產生它,可以直接列印。
可以直接用 SQL 程式碼畫 ER 圖嗎?
可以,這個工具就是為此而做的。貼上 PostgreSQL、MySQL、SQL Server 或 SQLite 的 CREATE TABLE 即可。整份 dump 也可以,包含 ALTER TABLE 與索引。也支援 Prisma、DBML、Mermaid、PlantUML、Django、SQLAlchemy、Sequelize、TypeORM 的 model 與 Laravel 的 migration。
我的結構會被上傳嗎?
不會。分析和繪圖完全在你的瀏覽器裡進行。你的 SQL 不會離開電腦,也沒有需要建立的帳號。ErdDocs 刻意不連線到運作中的資料庫,所以不必提供資料庫的帳號密碼。網站用不使用 Cookie 的分析信標計算瀏覽次數。它只知道你開了哪個頁面,看不到頁面裡的任何內容。
支援哪些資料庫和格式?
SQL 支援 PostgreSQL、MySQL、SQL Server 與 SQLite。可以是含有 ALTER TABLE ONLY ... ADD CONSTRAINT 陳述式的 pg_dump、mysqldump,或是在 SSMS 產生的指令碼,包括其中的 GO 批次與方括號名稱,也可以是 SQLite 的 .schema 指令輸出。另外九種輸入可以原樣讀取:Prisma 結構、DBML、Mermaid erDiagram、PlantUML、Django model、SQLAlchemy model、Sequelize model、TypeORM entity 與 Laravel migration。Prisma 的 @map 名稱、關聯欄位與隱含的多對多中介資料表,都會解析成資料庫實際建立的資料表。格式會依貼上的內容判斷,判斷結果也可以手動更改。
資料庫沒有外鍵,ER 圖會是空的嗎?
不會。Rails、Django、Laravel 的專案常常只在程式碼裡管理關聯。ErdDocs 也會讀命名慣例,所以 user_id 欄位會連到 users 資料表。這類推斷出的關聯用虛線畫出,和資料庫宣告的關聯區分開來。
和 dbdiagram、drawSQL、sqltoerdiagram 有什麼不同?
ErdDocs 只要一次付清。dbdiagram 和 drawSQL 的付費方案都只有訂閱制。ErdDocs 能讀 Prisma,也能讀 Django、SQLAlchemy、Sequelize 與 TypeORM 的 model,以及 Laravel 的 migration。這兩個工具都讀不了這些。它們也都不能匯出 Mermaid 或 PlantUML。在 drawSQL 裡,沒有帳號連圖片都匯出不了。DBML 在那裡也只能匯入,不能匯出。在 dbdiagram 裡,沒有外鍵的關聯要靠付費方案的 AI 助理來找。ErdDocs 則依欄位名稱免費找出來。sqltoerdiagram 沒有可列印的資料字典。它會把 dump 裡的每個分區畫成一張獨立的資料表,ErdDocs 則把分區併入父資料表。它不讀 Laravel 的 migration。遇到 Django 和 TypeORM,它會要你先從 model 產生 SQL。
要付費嗎?
看 ER 圖和匯出圖片都免費,也不需要帳號。25 個資料表以內的結構會完整繪出。更大的結構也會完整分析,但超過上限的資料表會鎖定顯示。一次付清 9 美元就能解鎖,其中也包含完整的資料字典。適用時,Paddle 會在結帳時加收稅金。