Sic Parvis Magna

26 Temmuz 2024 Cuma

Python - Math Library

Temmuz 26, 2024 Posted by unexpected , No comments

Python ile matamatik kütüphanesinin kullanımı hakkında bilgiler.

math.ceil(x) (ceiling)

Bir sayıyı yukarı yuvarlayarak en küçük tam sayı değerini döner. Örneğin, 3.2 sayısını ceil fonksiyonu ile yuvarladığımızda sonuç 4 olacaktır. Negatif bir sayıyı yukarı yuvarladığında, daha az negatif bir değere (daha büyük bir değere) yuvarlanır.

example.py
import math;

print("ceil: " + str(math.ceil(3.2))); # Sonuc: 4
print("ceil: " + str(math.ceil(-2.7))); # Sonuc: -2

math.comb(n, k) (combinations)

Belirli bir sayıda elemanın kaç farklı şekilde seçilebileceğini hesaplar. Örneğin, 5 eleman içinden 2 eleman seçmenin kaç farklı yolu olduğunu hesaplamak için comb fonksiyonunu kullanabiliriz.

example.py
import math;

print("comb: " + str(math.comb(5, 2))); # Sonuc: 10
print("comb: " + str(math.comb(7, 3))); # Sonuc: 35

Burada comb fonksiyonu, kombinasyonların sayısını hesaplamak için kullanılır ve n eleman içinden k eleman seçmenin kaç farklı yolu olduğunu verir. Formül, n! / (k! * (n - k)!) şeklindedir ve comb fonksiyonu bu hesaplamayı sizin için yapar.


math.copysign(x, y)

Bir sayının işaretini (pozitif veya negatif) başka bir sayının işaretiyle değiştirir.

example.py
import math;

print("copysign: " + str(math.copysign(3.5, -2.0))); # Sonuc: -3.5
print("copysign: " + str(math.copysign(-7.2, 4.1))); # Sonuc: 7.2

Burada copysign fonksiyonu, ilk sayının büyüklüğünü alır ve ikinci sayının işaretini bu büyüklüğe uygular. İlk örnekte, 3.5 sayısı negatif 2.0'ın işaretini alarak -3.5 olur. İkinci örnekte ise, -7.2 sayısı pozitif 4.1'in işaretini alarak 7.2 olur.


math.fabs(x)

Bir sayının mutlak değerini (absolute value) hesaplamak için kullanılır.

example.py
import math;

print("fabs: " + str(math.fabs(5.3))); # Sonuc: 5.3
print("fabs: " + str(math.fabs(-7.8))); # Sonuc: 7.8
print("fabs: " + str(math.fabs(-0.0))); # Sonuc: 0.0

Burada fabs fonksiyonu, sayının işaretini dikkate almadan sadece büyüklüğünü döner. Negatif sayılar pozitif hale gelirken, pozitif sayılar aynı kalır.


math.factorial(n)

Bir sayının faktöriyelini hesaplamak için kullanılır. Faktöriyel, bir pozitif tam sayının ve sıfırın tüm pozitif tam sayı çarpanlarının çarpımıdır. Örneğin, 5! (5 faktöriyel) 5 × 4 × 3 × 2 × 1 = 120'dir.

example.py
import math;

print("factorial: " + str(math.factorial(5))); # Sonuc: 120
print("factorial: " + str(math.factorial(7))); # Sonuc: 5040
print("factorial: " + str(math.factorial(0))); # Sonuc: 1
try:
	print("factorial: " + str(math.factorial(-3)));
except ValueError as e:
	print("Error: " + str(e));

factorial fonksiyonu sadece pozitif tam sayılar ve sıfır için kullanılabilir. Negatif bir sayı için kullanmaya çalışırsanız, bir ValueError Except hata alırsınız.


math.floor(x)

Bir sayıyı aşağı yuvarlayarak en büyük tam sayı değerini döner.

example.py
import math;

print("floor: " + str(math.floor(3.7))); # Sonuc: 3
print("floor: " + str(math.floor(-2.3))); # Sonuc: -3

Burada floor fonksiyonu, sayının en yakın alt tam sayı değerine yuvarlanmasını sağlar. Pozitif sayılar için bu, sayının tam kısmına yuvarlanması anlamına gelirken, negatif sayılar için bu, sayının tam kısmının bir altındaki tam sayıya yuvarlanması anlamına gelir.


math.fmod(x, y)

İki sayının kalanını (modulus) hesaplamak için kullanılır. fmod, genellikle float sayılarla çalışırken kullanılır ve x sayısının y sayısına bölümünden kalan değeri döner.

example.py
import math;

print("fmod: " + str(math.fmod(7.5, 2.3))); # Sonuc: 0.5999999999999996
print("fmod: " + str(math.fmod(-9.8, 3.2))); # Sonuc: -0.20000000000000018

fmod fonksiyonu, işaretli kalan değerini döner. Yani, bölenin (y) işareti ne olursa olsun, kalan (x) ile aynı işarete sahip olur. fmod, özellikle float sayılarla çalışırken, standart modulus operatöründen (%) daha doğru sonuçlar verir. Bu nedenle, matematiksel hesaplamalarda ve veri işleme görevlerinde kullanışlıdır.


math.frexp(x)

Bir sayıyı normalized mantissa ve üssü olarak iki ayrı bileşene ayırır. frexp, sayıyı x = m * 2**e şeklinde ifade eder, burada m bir kesir ve e bir tam sayıdır. m (mantissa) 0.5 ile 1 arasında veya -0.5 ile -1 arasında olur, ve e (exponent) bir tam sayıdır.

example.py
import math;

mantissa, exponent = math.frexp(8.0);
print("frexp: M: " + str(mantissa) + " E: " + str(exponent)); # Sonuc: 0.5, 4
# 8.0 sayısının 0.5 * 2**4 olarak ifade edilebileceğini gösterir.

mantissa, exponent = math.frexp(0.15625);
print("frexp: M: " + str(mantissa) + " E: " + str(exponent)); # Sonuc: 0.625, -2
# 0.15625 sayısının 0.625 * 2**(-2) olarak ifade edilebileceğini gösterir.

mantissa, exponent = math.frexp(-10);
print("frexp: M: " + str(mantissa) + " E: " + str(exponent)); # Sonuc: -0.625, 4
# -10.0 sayısının -0.625 * 2**4 olarak ifade edilebileceğini gösterir.

math.fsum(iterable)

Yüksek hassasiyetle floating point (kayan noktalı) sayılarının toplamını hesaplamak için kullanılır. fsum, özellikle büyük miktarda floating point sayı toplarken oluşabilecek yuvarlama hatalarını minimize etmek için tasarlanmıştır.

example.py
import math;

print("fsum: " + str(fsum([0.1, 0.2, 0.3, 0.4, 0.5]))); # Sonuc: 1.5
print("fsum: " + str(fsum([1.1, 2.2, 3.3, 4.4, 5.5]))); # Sonuc: 16.5

Bu örnekler, fsum fonksiyonunun floating point sayılarının toplamını nasıl yüksek hassasiyetle hesapladığını gösterir.

Bir başka senaryo, yuvarlama hatalarını gösterir. Normal toplama işlemi bazı durumlarda hassasiyet kaybına neden olabilir

example.py
# Normal toplama ile floating point sayılar
normal_toplam = sum([0.1] * 10)

# fsum ile aynı sayılar
hassas_toplam = math.fsum([0.1] * 10)

print(f"Normal toplama ile: {normal_toplam}") # Sonuc: Normal toplama ile: 0.9999999999999999
print(f"fsum ile: {hassas_toplam}") # fsum ile: 1.0

Burada fsum fonksiyonu, sum fonksiyonuna kıyasla daha doğru bir sonuç verir.


math.gcd(*integers) (Greatest Common Divisor)

İki sayının en büyük ortak bölenini hesaplamak için kullanılır. (integer varargs)

example.py
import math;

print("gcd: " + str(math.gcd(36, 60))); # Sonuc: 12
# 36 ve 60 sayılarının en büyük ortak böleninin 12 olduğunu gösterir.

print("gcd: " + str(math.gcd(48, 180))); # Sonuc: 12
# 48 ve 180 sayılarının en büyük ortak böleninin 12 olduğunu gösterir.

print("gcd: " + str(math.gcd(-54, 24))); # Sonuc: 6
# -54 ve 24 sayılarının en büyük ortak böleninin 6 olduğunu gösterir.

x = math.gcd(24, 36);
print("gcd: " + str(math.gcd(x, 60))); # Sonuc: 12
# 24, 36 ve 60 sayılarının en büyük ortak böleninin 12 olduğunu gösterir.

math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)

İki sayının birbirine yakın olup olmadığını karşılaştırmak için kullanılır. Bu fonksiyon, floating-point (kayan nokta) sayılar arasında hassasiyet gerektiren karşılaştırmalar yaparken yararlıdır.

  • a ve b: Bu iki parametre pozisyonel veya anahtar kelime argümanları olarak geçilebilir.
  • *: Bu sembol, bundan sonra gelen parametrelerin sadece anahtar kelime argümanları olarak belirtilmesi gerektiğini belirtir.
  • rel_tol ve abs_tol: Bu iki parametre yalnızca anahtar kelime argümanları olarak geçilmelidir.
example.py
import math;

x = 0.1 + 0.2;
y = 1000.0001;
print("isclose: " + str(math.isclose(x, y))); # Sonuc: True;

Burada, 0.1 + 0.2 işleminin sonucu 0.30000000000000004 olarak hesaplanır, ancak bu sonuç 0.3 ile isclose fonksiyonu tarafından yakın olarak kabul edilir çünkü floating-point aritmetiği nedeniyle küçük bir hata vardır.

example.py
import math;

x = 1000.0;
y = 0.3;
print("isclose: " + str(math.isclose(x, y, rel_tol=1e-4, abs_tol=1e-3))); # Sonuc: True;

Burada rel_tol ve abs_tol ile toleranslar belirlenmiştir. Bu değerler içinde kaldığı için iki sayı birbirine yakın olarak kabul edilir.

example.py
import math;

x = 1.0;
y = 1.1;
print("isclose: " + str(math.isclose(x, y, rel_tol=1e-2, abs_tol=1e-2))); # Sonuc: False;

Burada belirlenen toleranslar 1.0 ve 1.1 arasındaki farkı yeterince yakın olarak değerlendirmemektedir, bu yüzden sonuç False olur.

  • Relative Tolerans: İki sayının oranı arasındaki farkı kontrol eder. Küçük sayılarla çalışırken veya büyük sayılarla çalışırken hassasiyet önemli olabilir.
  • Absolute Tolerans: İki sayı arasındaki mutlak farkı kontrol eder. Küçük sayılarla çalışırken özellikle önemlidir.
example.py
import math

# Farklı tolerans ayarları
print(math.isclose(1.0, 1.000001, rel_tol=1e-5))  # Sonuç: True
print(math.isclose(1.0, 1.00001, rel_tol=1e-5))   # Sonuç: False

# Mutlak tolerans kullanımı
print(math.isclose(1.0, 1.001, abs_tol=0.01))     # Sonuç: True
print(math.isclose(1.0, 1.02, abs_tol=0.01))      # Sonuç: False

3 Temmuz 2024 Çarşamba

Maven ile Manifest File içerisine ekleme nasıl yapılır.

Temmuz 03, 2024 Posted by unexpected , No comments

Java projelerini gelişitirirken bazen Manifest File içerisine eklemeler yapmak isteyebiliriz. Bu tarz eklemeleri java projemizin içerisinde kullanma ihtiyacı duyoruz.

Peki Manifest File içerisine nasıl ekleme yapabiliriz?

Aşağıda belirtmiş olduğum plugin kodunu pom.xml içerisinde build/plugins tagleri arasına ekliyoruz. Burada manifestEntries tagi altında eklediklerimizin hepsi Manifest File içerisine eklenmiş oluyor. Örneğin: Trusted-Library: true şeklin de eklenmiş olarak görünecektir.

pom.xml
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<configuration>
		<archive>
			<addMavenDescriptor>false</addMavenDescriptor>
			<manifestEntries>
				<Trusted-Library>true</Trusted-Library>
			</manifestEntries>
		</archive>
	</configuration>
</plugin>

2 Temmuz 2024 Salı

Maven Compiler JRE, JDK Sorunu

Temmuz 02, 2024 Posted by unexpected , No comments

Java projelerini maven ile derlerken hepimiz şöyle bir hata ile karşılaşmışızdır.

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

Peki bu hatayı nasıl çözebiliriz?

Aşağıda belirtmiş olduğum plugin kodunu pom.xml içerisinde build/plugins tagleri arasına ekliyoruz. Ve böylelikle projemize JDK yolunu tanımlamış oluyoruz.

Not: Executable tag'i arasına kullandığınız java hangisi ise onun yolunu belirtin.

pom.xml
<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.1</version>
	<configuration>
		<fork>true</fork>
		<executable>C:\Program Files\Java\jdk1.8.0_281\bin\javac.exe</executable>
	</configuration>
</plugin>

1 Temmuz 2024 Pazartesi

Sic Parvis Magna Ve Felsefesi

Temmuz 01, 2024 Posted by unexpected No comments
“Sic Parvis Magna” Latince

Türkçe: “Büyük olaylar, küçük başlangıçlardan doğar.”

İngilizce: “Greatness from small beginnings.”

“Büyüklük, küçük adımlarla başlar.” da diyebileceğimiz Latince, eski bir deyiş. (Muhteşem işler, ufak detaylarda gizlidir gibi versiyonlarını da anlamdan uzaklaşmadan yerine göre türetebiliriz.)

Bu söylem, Elizabeth devrinde yaşamış İngiliz denizci ve kaşif olarak bilinen Francis Drake’e ait bir hayat felsefesidir. 1581'de I. Elizabeth tarafından şövalyelik unvanıyla ödüllendirilerek, tarihte kayıtlara Sir Francis Drake olarak geçmiştir. Hakkındaki efsaneler ve hazineleri Uncharted video oyun serisine de konu olmuştur. Hayatı mottom haline gelen bu söylemi, ilk kez bu oyununda duymuştum. Modern Indiana Jones olarak tanımladığım Nathan Drake ve onun tarihi gizemleri ortaya çıkarmak için, bir antik kentten diğerine geçtiği maceraları ve hazine avcılığını konu alan oyun serisinde, Sic Parvis Magna mottosu oldukça önemli bir yere sahip. Uncharted 4: Bir Hırsızın Sonu oyununda Nathan’ın kardeşi Sam’i görüyoruz. Oyunun Drake Kardeşler (16.) bölümünde, geçmişe dönüş sahnelerinden birinde, kardeşlerin Drake soyadını nasıl aldıklarını ve annelerinin yarım kalan Francis Drake’in maceraları araştırmalarını devam ettirmeye nasıl karar verdiklerine tanık oluyoruz. Zaten daha önceki oyunlarda da, Nathan’ın taktığı Sir Francis Drake’in yüzüğü ve onun boş tabutundan çıkan günlüğü aradığını görmüştük. Karakterlerimizin geçmişine ve maceralarının nasıl başladığına daha yakından bakmış oluyoruz 4. oyunda. Oyunun, Sic Parvis Magna bölümünde de Francis Drake’in hayat felsefesine daha detaylı değiniyorlar. Bu nedenle, bu oyunun ve ele aldığı hikayenin bu hayat felsefesiyle birlikte yeri bende çok ayrı.

Tom Holland’ın Nathan Drake rolünü canlandırdığı filmin çekimlerinin tamamlandığı, filmin resmi Twitter hesabında duyrulmuştu.

Ayrıca The Last of Us 2 oyununun kısa bir bölümünde, Sir Francis Drake’in yüzüğü gösteriliyor. Uncharted’a atıfta bulunmaları oldukça hoş.

Bu söylem bana, ayrıca Fahrenheit 451 kitabında geçen (Syf 89) şu cümleleri hatırlatıyor:

“Nereden başlayacağız.”

“Başlamakla başlayacağız sanırım.”

Uzak yakın her hayatın temelinde bulunan, minik hücrelerin yetişkin bir insana dönüşmesi, bir tohumun filizlenip meyve veren bir ağaca dönüşmesi ve büyük bir projeyi ortaya koymadan önce zihninizdeki fikir hali ve projeyi somut olarak algılanacak şekilde gerçekleştirmeniz…

Her küçük şey, büyük başka bir şeye dönüşür.

Sic Parvis Magna, bir söylemden öte bir hayat felsefesidir ve bana göre sabrı temsil eder. Çünkü henüz gözle görülemeyecek evrede var olan bir fikrin, elle tutulur ve somutça algılanabilir bir evreye gelene kadar geçen; uzun, sabır gerektiren ve emek isteyen bir süreçtir.

Varlığımızın temelinden itibaren, hayatta öğrendiğimiz her basit şeyin üzerine, bir fazlasını koyarak gittikçe çoğalan daha büyük bilgiler öğrenmemize, emeklemekten ayakta durabilmemize, ilk adımımızı atmamızdan koşmayı öğrendiğimiz tecrübelere, toprağın ve suyun filizlendirdiği her minik tohumun ulu ağaçlara, ormanlara dönüşmesine, telefonun icadının ardından günümüze kadar pek çok kez geliştirilmesine ilişkin teknolojik olaylara, bir sanatçının eserini ortaya koymadan önceki o uzun zihin sürecine kadar yaşama dair tüm durumların temelinde yatan felsefedir Sic Parvis Magna. Her şeyin başlamakla başladığı noktayı sembolize eder.

Tıpkı Walt Disney’in “Hayal edebilirseniz yapabilirsiniz. Her şeyin bir fareyle başladığını hiç aklınızdan çıkarmayın.” cümlesinde de dediği gibi.

Adım atmaktan korkmayın, her şey bebek adımlarıyla başlar ve eyleme döktüğümüz her düşünce sonsuza dek yankılanır.

Whois Nedir.

Temmuz 01, 2024 Posted by unexpected No comments

Whois, bir IP adresi veya alan adıyla ilişkili ayrıntılı bilgileri sorgulama ve alabilme protokolüdür. Whois, internet alan adları ve IP adreslerine kayıtlı olan sahiplik bilgilerini, kayıt tarihini, güncelleme tarihini, isim sunucularını ve diğer ilgili bilgileri sunar.

Whois sorgusu, bir alan adı veya IP adresi için ilgili veritabanına bir sorgu göndererek sahiplik bilgilerini alır. Bu bilgiler, alan adı kayıt şirketi veya IP adresi tahsis eden şirket tarafından sağlanır. Whois sorgusu, bir internet hizmet sağlayıcısı, bir alan adı tescil şirketi veya bir IP adresi kayıt merkezi üzerinden yapılabilir.

Whois sorgusu, bir internet alan adının kimin tarafından kaydedildiğini öğrenmek, bir IP adresinin sahibini belirlemek veya bir alan adının geçerlilik durumunu kontrol etmek gibi birçok amaçla kullanılabilir. Ancak, kişisel gizlilik ve güvenlik nedenleriyle, bazı alan adı tescil şirketleri Whois sorgusunda sahiplik bilgilerini gizleyebilir veya anonimleştirebilir.

Whois bir web servisi olup TCP 43. porttan çalışır. Whois uygulamalar ile whois servisin 43. portundan sorgu gönderir. Whois server sorguyu işleyip whois bilgilerini döndürür.

Whois sorgusu yapabileceğimiz bir çok servisler var. Bunlardan bazıları;

PostgreSQL Zip Arşivi Nasıl Kurulur

Temmuz 01, 2024 Posted by unexpected , No comments

Bu örnekte size Windows ortamında PostgreSQL zip arşivini kurmayı göstereceğim. PostgreSQL veritabanı sunucunuz için kullanıcı adı ve parolayı nasıl ayarlayacağınızı göstereceğim. Ayrıca tüm veritabanlarını listeleme, başka bir veritabanına geçme, yeni bir veritabanı oluşturma, tüm tabloları gösterme, yeni bir tablo oluşturma, veritabanı yedekleme, veritabanı içe aktarma için bazı temel komutları göstereceğim.

PostgreSQL’in zip sürümünü kurmanın avantajı, kayıt defterinizin değiştirilmemesi ve sisteminizi yeniden başlatmanızın gerekmemesidir. PostgreSQL sunucunuzu kaldırırken herhangi bir şeyin yanlış gitmesi konusunda endişelenmenize gerek yoktur. PostgreSQL’i güncelleme konusunda endişelenmenize gerek yoktur. Sadece klasörleri silebilir ve PostgreSQL’in yeni sürümünü istediğiniz zaman tekrar kurabilirsiniz. PostgreSQL sunucusunun exe veya msi sürümünü yüklediğinizde sistemde var olabilecek herhangi bir kaldırılmış veya kaldırılmamış dosya için kayıt defterini kontrol etmenize gerek yoktur.

PostgreSQL’i Kurulum Aşamaları

PostgreSQL sunucusunu kurmak için aşağıdaki adımları takip edin.

  • PostgreSQL’in zip sürümünü indirin
  • Zip dosyasını fiziksel sürücü konumuna çıkarın. Diyelim ki C sürücüsünün altında. Yani PostgreSQL kök dizini C:\pgsql olarak belirleyin.
  • Sunucunuzun data, user gibi konfigürasyonlarının saklanacağı bir klasör oluşturmanız gerekiyor. Ben C sürücüsü altında pgsql_data diye bir klasör oluşturdum. Yani klasör C:\pgsql_data bu şekilde görünmelidir.
  • Şimdi initdb.exe komutu kullanarak veritabanı için kullanıcı, şifreleme türü ve kodlama ile parola ayarlayın. initdb.exe C:\pgsql\bin klasörü altında bulunacaktır.
terminal
C:\pgsql\bin>initdb.exe -D C:\pgsql_data -U postgres -W -E UTF8 -A scram-sha-256

-U postgres süper kullanıcıyı postgres olarak oluşturur, -W süper kullanıcının parolasını sorar, -E UTF8 veritabanını UTF-8 kodlamasıyla oluşturur ve -A scram-sha-256 parola kimlik doğrulamasını etkinleştirir.

Böylece PostgreSQL kurulumunu tamamlamış oldunuz.

PostgreSQL Start ve Stop

  • PostgreSQL’i başlatmak için şu komutu çalıştırın: C:\pgsql\bin>pg_ctl.exe -D C:\pgsql_data -l logfile start
  • PostgreSQL’i kapatmak için şu komutu çalıştırın: C:\pgsql\bin>pg_ctl.exe -D C:\pgsql_data stop

PostgreSQL Sunucusuna Giriş Yapın

Şimdi size psql istemcisini kullanarak PostgreSQL sunucusuna nasıl bağlanacağınızı ve bazı temel komutları nasıl gerçekleştireceğinizi göstereceğim.

Veritabanı sunucunuza bağlanmak üzere oturum açmak için aşağıdaki komutu kullanın:

terminal
C:\pgsql\bin>psql.exe -U postgres

Parola sorulduğunda, kurulum sırasında belirlediğiniz parolayı girin.

Başarılı bir şekilde bağlandınız ve SQL deyimlerini, komutlarını vb. gerçekleştirebilirsiniz.

PostgreSQL’de Sorgular veya İşlemler

Tüm veritabanlarını listelemek için komutu kullanın: \list or \l, aşağıdaki resimde gösterildiği gibi:

Yeni bir veritabanı oluşturmak için komutu kullanın: CREATE DATABASE <database name>;

Yeni bir veritabanına geçmek için şu komutu kullanın: \connect <database name> or \c <database name>

Komut satırını kullanarak da bir tablo oluşturabilirsiniz, örneğin, aşağıdaki tabloyu oluşturalım:

example.sql
CREATE TABLE category (
  id serial PRIMARY KEY,
  name varchar(50) NOT NULL
);

Bir veritabanında ki tabloları göstermek için şu komutu kullanın \dt or \dt+

Yedekleme veya veritabanı dökümü almak için aşağıdaki komutu kullanın:

terminal
C:\pgsql\bin>pg_dump.exe -U postgres -d roytuts -f <path>\backup.sql

Burada, -U ardından veritabanı kullanıcı adı, -d ardından veritabanı adı, -f ardından .sql veya .pgsql dosya adı ile tam yol belirtilir.

Mevcut .pgsql veya .sql dosyasını veritabanı sunucusuna aktarmak için aşağıdaki komutu kullanın:

terminal
C:\pgsql\bin>psql.exe -h ec2-75-101-212-64.compute-1.amazonaws.com -U ilfndedxuwxhxu d8lhnd1pla9162 < <directory path>\backup.sql

Burada, -h ardından ana bilgisayar adı (burada Heroku bulutunu kullandım), -U ardından veritabanı kullanıcı adı, ardından veritabanı adı ve yedekleme dosyası adı gelir. Varsayılan port 5431'i kullanmıyorsanız -p ve ardından portu da kullanabilirsiniz.

PostgreSQL veritabanı sunucusunun zip sürümünün Windows ortamında nasıl kurulacağı hakkında her şey bu kadar.