sql >> Databáze >  >> RDS >> PostgreSQL

Vytvořte databázi Postgres pomocí dávkového souboru s [šablona], [kódování], [vlastník] a soubor .sql

Klientský program createdb nepodporuje všechny tyto možnosti.
Vytvořte soubor db_create.sql :

CREATE DATABASE MydatAbseName
   WITH OWNER myadmin 
   TEMPLATE template0
   ENCODING 'SQL_ASCII'
   TABLESPACE  pg_default
   LC_COLLATE  'C'
   LC_CTYPE  'C'
   CONNECTION LIMIT  -1;

Nazvěte to:

psql -U postgres postgres -f C:/path/to/db_create.sql

Trik je v tom, že se připojíte k výchozí údržbě db "postgres" a odtud vytvořte novou databázi. Dělám to s výchozím superuživatelem v mém příkladu s názvem "postgres".
psql -f provede příkazy SQL v daném souboru.

Můžete také provést jeden příkaz pomocí psql -c (žádný soubor):

psql -U postgres postgres -c "CREATE DATABASE MydatAbseName WITH OWNER Myadmin
EMPLATE template ENCODING 'SQL_ASCII' TABLESPACE  pg_default LC_COLLATE  'C'
LC_CTYPE  C' CONNECTION LIMIT  -1"

Více o vytváření databáze v jemném manuálu zde a zde .
Více na psql .

Ve Windows to vypadá asi takto:

"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres

Poslední "postgres" je název výchozího údržbového db. Pokud jej chcete použít v dávkovém souboru, musíte odpovědět na výzvu k zadání hesla nebo se připojit k uživateli, který má povolen přístup bez zadání hesla. Základy v kapitolách Soubor hesel a Soubor pg_hba.conf manuálu. Více zde:




  1. Laravel výmluvný získat nejběžnější hodnotu ve sloupci databáze

  2. Proč je maximální časový limit MySQL 838:59:59?

  3. Podivné chování při castingu v mysql

  4. Výjimky Python MySQLdb