Ücretsiz araç

PostgreSQL’den ER diyagramına

pg_dump çıktısını olduğu gibi yapıştırın; SET satırları, ALTER TABLE ONLY kısıtları ve COPY blokları içinde kalabilir. Her tablonun ve yabancı anahtarın ER diyagramını alın. Identity sütunları, bir enum türü ve bölümlenmiş bir tablo kullanan çok kiracılı SaaS örneğini deneyin.

Örnek çıktı

PostgreSQL örneğinden çizilmiş örnek diyagram
Bir örnek deneyinÇok kiracılı SaaS

Nasıl çalışır

  1. pg_dump çıktınızı yapıştırın ya da bırakın

    Düz metin bir döküm, bir migration dosyası ya da psql, pgAdmin veya bir ORM’den gelen CREATE TABLE deyimleri. Dökümü önceden temizlemeniz gerekmez.

  2. Her tabloyu anahtarlarıyla görün

    pg_dump’ın dosyanın sonuna yazdığı anahtarlar kendi tablolarıyla eşleştirilir, her yabancı anahtar çizgisi kendi sütunundan başlar ve birden çok şema içeren bir dökümde her şema için bir çerçeve çizilir.

  3. Archboard’da açın

    Yeniden düzenlemek, not eklemek, bağlantı paylaşmak ya da SVG ve PNG olarak dışa aktarmak için yeni diyagram olarak kaydedin. Kayıt için Google ya da GitHub hesabı yeterli.

Veritabanı şemasını PostgreSQL’den alın

Bunu veritabanına karşı çalıştırın, sonra schema.sql dosyasını yapıştırın ya da bırakın:

  1. --schema-only satırları dışarıda bırakır; --no-owner ve --no-privileges de OWNER TO, GRANT ve REVOKE satırlarını atar. Tek bir şemayı dökmek için --schema=sales ekleyin. mydb yerine veritabanının adını yazın; gerekirse -h ve -U ekleyin ya da bir bağlantı URI’si verin.

    pg_dump --schema-only --no-owner --no-privileges mydb > schema.sql

Dökümdeki PostgreSQL sözdizimi

Bir pg_dump dosyasındaki her yapıya ne olur:

serial · GENERATED … AS IDENTITY
Türü yazıldığı gibi kalan sıradan sütunlar olarak okunur; identity ya da sequence varsayılanı gösterilmez. serial bir sütun ancak bir PRIMARY KEY bunu söylüyorsa PK olarak işaretlenir, çünkü serial tek başına anahtar oluşturmaz.
CREATE TYPE … AS ENUM
Enum türünün adı sütun türü olur, örneğin order_status; etiketleri kartta listelenmez.
CREATE SCHEMA
Dökümde birden çok şema varsa tablo içeren her şema, tablolarının çevresinde bir çerçeve olur; şemalar arası yabancı anahtarlar çerçevelerin arasından geçer.
ALTER TABLE ONLY … ADD CONSTRAINT
Okunur. pg_dump birincil anahtarları, benzersiz kısıtları ve yabancı anahtarları en sona yazar; bunlar bütün tablolar okunduktan sonra uygulanır.
PARTITION OF
Üst tabloya katlanır; aylara bölünmüş bir tablo tek kart olur ve önizleme kaç bölümün katlandığını söyler. ATTACH PARTITION da aynı şekilde işlenir.
$$ … $$
Dolar tırnaklı fonksiyon ve yordam gövdeleri bütünüyle atlanır; içlerindeki noktalı virgüller bir deyimi yarıda kesemez. Bir DO bloğunun içindeki CREATE TABLE ve ALTER TABLE … ADD CONSTRAINT yine okunur.
COPY … FROM stdin
Ardından gelen veri satırları, kapanıştaki \. satırına kadar okunmadan atlanır.
\restrict
Atlanır. Yeni pg_dump sürümleri dökümün başına ve sonuna \restrict ile \unrestrict satırları koyar; bunlar ve \connect gibi diğer psql meta komutları yok sayılır.

pg_dump diyagramının dışında kalanlar

  • Tablo verileri. COPY bloklarındaki ve INSERT deyimlerindeki satırlar okunmaz; verili bir döküm, --schema-only ile alınmış bir dökümle aynı diyagramı çizer.
  • Fonksiyonlar, yordamlar, tetikleyiciler ve DO bloğu kodu. Gövdeleri atlanır ve sayılır; bir DO bloğunun içinden yalnız tablolar ve kısıtlar alınır.
  • Satır düzeyi erişim politikaları (RLS), GRANT ve REVOKE ile nesne sahipleri. Bir tabloyu kimin okuyabileceği ya da değiştirebileceği diyagramda yer almaz.
  • Çalışan bir PostgreSQL sunucusundan gelen her şey. Bağlantı kurulmaz; tablo boyutları, satır sayıları ve kurulu eklentiler gösterilmez.

PostgreSQL soruları

Hangi pg_dump seçeneklerini kullanmalıyım?

pg_dump --schema-only --no-owner --no-privileges en kısa çıktıyı verir, ama veri içerenler dahil her düz metin döküm çalışır. -Fc ile alınmış özel biçimli bir arşiv SQL metni değildir: onu pg_restore --schema-only -f schema.sql komutuna arşivin dosya adını ekleyerek SQL’e çevirin.

Birden çok şema nasıl gösterilir?

Tablo içeren her şema, tablolarını içine alan bir çerçeve olur; böylece public, billing ve audit birbirinden ayrı durur, aralarındaki yabancı anahtarlar da çerçevelerin arasından geçer. Tek bir şemayı çizmek için onu --schema=ad ile, kısaca -n ile tek başına dökün.

Bölümlenmiş tablolara ne olur?

PARTITION OF ile oluşturulan ya da sonradan ATTACH PARTITION ile bağlanan bölümler üst tabloya katlanır; on iki aylık bölüme ayrılmış bir payments tablosu tek kart olarak görünür. Önizleme kaç bölümün katlandığını not eder.

Enum ve özel türler gösteriliyor mu?

CREATE TYPE … AS ENUM ile oluşturulan enum sütun türü olarak kullanılır; bir status sütununda order_status yazar, ama enum’un etiketleri listelenmez. Domain’ler ve bileşik türler kart olarak çizilmez; onları kullanan sütunlarda tür adı yine yazıldığı gibi görünür.

Bir döküm yapıştırınca bir şey kaydediliyor mu?

Önizleme kaydedilmez. Archboard’da aç’ı seçtiğinizde çizilen diyagram, yani tablo kartları, sütun adları ve türleri, şema çerçeveleri ve çizgiler, çalışma alanınıza yeni bir diyagram olarak kaydedilir. Veritabanında sonradan yapılan değişiklikler onu güncellemez.

PostgreSQL ER diyagramı aracı ücretsiz mi?

Evet. Döküm yapıştırmak ve diyagramı görmek için hesap gerekmez. Diyagramı Archboard’da açmak için ücretsiz bir hesap yeterli.

Bir dakikada canvas açın

Google veya GitHub ile giriş yapın. Tek koltuk ücretsiz; ekip katılınca planı yükseltin.