CREATEDB(1) PostgreSQL 18.6 Documentation CREATEDB(1)

createdb - ساخت یک پایگاه‌داده جدید PostgreSQL

createdb [connection-option...] [option...] [dbname [description]]

دستور createdb یک پایگاه‌داده جدید PostgreSQL ایجاد می‌کند.

به‌طور معمول، کاربر پایگاه‌داده‌ای که این دستور را اجرا می‌کند، مالک پایگاه‌داده جدید می‌شود. با این حال، در صورتی که کاربر اجراکننده دارای اختیارات لازم باشد، می‌توان با استفاده از گزینه -O مالک متفاوتی را مشخص کرد.

دستور createdb پوششی پیرامون دستور SQL با نام CREATE DATABASE است. در عمل هیچ تفاوتی میان ایجاد پایگاه‌های داده از طریق این ابزار و روش‌های دیگر برای دسترسی به سرور وجود ندارد.

دستور createdb آرگومان‌های خط فرمان زیر را می‌پذیرد:

dbname

نام پایگاه‌داده‌ای که باید ایجاد شود را مشخص می‌کند. این نام باید میان تمام پایگاه‌های داده PostgreSQL در این کلاستر یکتا باشد. حالت پیش‌فرض، ساخت پایگاه‌داده‌ای هم‌نام با کاربر جاری سیستم است.

description

توضیحی را برای انتساب به پایگاه‌داده جدید تعیین می‌کند.

-D tablespace
--tablespace=tablespace

فضای جدول (tablespace) پیش‌فرض پایگاه‌داده را تعیین می‌کند. (این نام به‌عنوان یک شناسه نقل‌قول‌شده دوگانه پردازش می‌شود.)

-e
--echo

دستوراتی را که createdb تولید کرده و به سرور ارسال می‌کند، در خروجی نمایش می‌دهد (echo).

-E encoding
--encoding=encoding

طرح کدگذاری نویسه‌ها (character encoding scheme) را برای استفاده در این پایگاه‌داده مشخص می‌کند. مجموعه‌های نویسه پشتیبانی‌شده توسط سرور PostgreSQL در بخش 23.3.1 شرح داده شده‌اند.

-l locale
--locale=locale

لوکال (locale) مورد استفاده در این پایگاه‌داده را مشخص می‌کند. این کار معادل تنظیم هم‌زمان گزینه‌های --lc-collate، --lc-ctype و --icu-locale با مقداری یکسان است. برخی لوکال‌ها تنها برای ICU معتبر هستند و باید با --icu-locale تنظیم شوند.

--lc-collate=locale

تنظیم LC_COLLATE را برای استفاده در این پایگاه‌داده مشخص می‌کند.

--lc-ctype=locale

تنظیم LC_CTYPE را برای استفاده در این پایگاه‌داده مشخص می‌کند.

--builtin-locale=locale

نام لوکال را هنگام استفاده از ارائه‌دهنده داخلی (builtin) مشخص می‌کند. پشتیبانی از لوکال در بخش 23.1 شرح داده شده است.

--icu-locale=locale

در صورت انتخاب ارائه‌دهنده لوکال ICU، شناسه لوکال ICU را برای استفاده در این پایگاه‌داده مشخص می‌کند.

--icu-rules=rules

قواعد تطبیق (collation rules) اضافی را برای سفارشی‌سازی رفتار تطبیق پیش‌فرض این پایگاه‌داده تعیین می‌کند. این مورد تنها برای ICU پشتیبانی می‌شود.

--locale-provider={builtin|libc|icu}

ارائه‌دهنده لوکال را برای تطبیق پیش‌فرض پایگاه‌داده مشخص می‌کند.

-O owner
--owner=owner

کاربر پایگاه‌داده‌ای را که مالک پایگاه‌داده جدید خواهد بود مشخص می‌کند. (این نام به‌عنوان یک شناسه نقل‌قول‌شده دوگانه پردازش می‌شود.)

-S strategy
--strategy=strategy

راهبرد ساخت پایگاه‌داده را تعیین می‌کند. برای جزئیات بیشتر به CREATE DATABASE STRATEGY مراجعه کنید.

-T template
--template=template

پایگاه‌داده الگویی را که این پایگاه‌داده باید بر مبنای آن ساخته شود مشخص می‌کند. (این نام به‌عنوان یک شناسه نقل‌قول‌شده دوگانه پردازش می‌شود.)

-V
--version

نسخه createdb را چاپ کرده و خارج می‌شود.

-?
--help

راهنمای آرگومان‌های خط فرمان createdb را نمایش داده و خارج می‌شود.

گزینه‌های -D، -l، -E، -O و -T متناظر با گزینه‌های دستور SQL زیربنایی CREATE DATABASE هستند؛ برای کسب اطلاعات بیشتر درباره آن‌ها به مستندات آن دستور مراجعه کنید.

دستور createdb همچنین آرگومان‌های خط فرمان زیر را برای پارامترهای اتصال می‌پذیرد:

-h host
--host=host

نام میزبان ماشینی را که سرور روی آن در حال اجراست مشخص می‌کند. اگر این مقدار با یک اسلش آغاز شود، به‌عنوان پوشه سوکت دامنه یونیکس (Unix domain socket) استفاده خواهد شد.

-p port
--port=port

پورت TCP یا پسوند فایل سوکت دامنه یونیکس محلی را که سرور برای دریافت اتصالات روی آن گوش می‌دهد مشخص می‌کند.

-U username
--username=username

نام کاربری برای برقراری اتصال.

-w
--no-password

هرگز درخواست رمز عبور مطرح نمی‌کند. اگر سرور نیازمند احراز هویت با رمز عبور باشد و رمز عبور از راه‌های دیگری همچون فایل .pgpass در دسترس نباشد، تلاش برای برقراری اتصال با شکست مواجه می‌شود. این گزینه در کارهای دسته‌ای (batch jobs) و اسکریپت‌هایی که هیچ کاربری برای وارد کردن رمز عبور حضور ندارد مفید است.

-W
--password

برنامه createdb را وادار می‌کند قبل از اتصال به پایگاه‌داده، درخواست رمز عبور کند.

این گزینه هرگز ضروری نیست، زیرا createdb در صورتی که سرور نیاز به احراز هویت با رمز عبور داشته باشد، به‌طور خودکار درخواست رمز عبور خواهد کرد. با این وجود، createdb یک تلاش برای اتصال را هدر خواهد داد تا متوجه شود سرور نیازمند رمز عبور است. در برخی موارد، مشخص کردن -W برای جلوگیری از این تلاش مضاعف ارزشمند است.

--maintenance-db=dbname

نام پایگاه‌داده‌ای را برای اتصال در حین ساخت پایگاه‌داده جدید مشخص می‌کند. در صورت عدم تعیین، از پایگاه‌داده postgres استفاده می‌شود؛ چنانچه آن پایگاه‌داده موجود نباشد (یا نام همان پایگاه‌داده جدیدی باشد که در حال ساخته شدن است)، از template1 استفاده خواهد شد. این مقدار می‌تواند یک رشته اتصال (connection string) باشد. در این حالت، پارامترهای رشته اتصال بر هر گزینه خط فرمانی که دارای تضاد باشد ارجحیت خواهند داشت.

PGDATABASE

در صورت تنظیم، نام پایگاه‌داده‌ای را که باید ساخته شود مشخص می‌کند، مگر اینکه در خط فرمان بازنویسی شود.

PGHOST
PGPORT
PGUSER

پارامترهای اتصال پیش‌فرض. PGUSER همچنین در صورتی که نام پایگاه‌داده در خط فرمان یا از طریق PGDATABASE تعیین نشده باشد، نام پایگاه‌داده‌ای را که باید ساخته شود مشخص می‌کند.

PG_COLOR

مشخص می‌کند که آیا در پیام‌های خطا از رنگ استفاده شود یا خیر. مقادیر معتبر عبارتند از always، auto و never.

این ابزار، مانند اغلب ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانی‌شده توسط libpq نیز استفاده می‌کند (به بخش 32.15 مراجعه فرمایید).

در صورت بروز مشکل، برای بررسی مسائل احتمالی و پیام‌های خطا به CREATE DATABASE (CREATE_DATABASE(7)) و psql(1) مراجعه کنید. سرور پایگاه‌داده باید روی میزبان هدف در حال اجرا باشد. همچنین، هرگونه تنظیمات پیش‌فرض اتصال و متغیرهای محیطی مورد استفاده توسط کتابخانه پیشانه libpq اعمال خواهد شد.

برای ساخت پایگاه‌داده demo با استفاده از سرور پایگاه‌داده پیش‌فرض:

$ createdb demo

برای ساخت پایگاه‌داده demo روی میزبان eden، پورت 5000، با استفاده از پایگاه‌داده الگوی template0، دستور خط فرمان و دستور SQL زیربنایی مربوط به آن به شکل زیر است:

$ createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;

dropdb(1), CREATE DATABASE (CREATE_DATABASE(7))

2026 PostgreSQL 18.6