sql >> Databasteknik >  >> RDS >> PostgreSQL

Skapa Postgres-databas med batchfil med [mall],[kodning],[ägare] och en .sql-fil

Klientprogrammet createdb stöder inte alla dessa alternativ.
Skapa en fil 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;

Kalla det:

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

Tricket här är att ansluta till standardunderhållsdb "postgres" och skapa den nya databasen därifrån. Jag gör det med standard superanvändaren heter "postgres" i mitt exempel.
psql -f kör SQL-kommandon i den givna filen.

Du kan också bara köra ett enda kommando med psql -c (ingen fil involverad):

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"

Mer om att skapa en databas i den fina manualen här och här .
Mer om psql .

På Windows ser det ut ungefär så här:

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

Den sista "postgres" är namnet på standardunderhållsdb. Om du vill använda den i en batchfil måste du svara på en lösenordsuppmaning eller ansluta till en användare som får åtkomst utan att ange ett lösenord. Grunderna i kapitlen Lösenordsfilen och pg_hba.conf-filen av manualen. Mer här:




  1. Vilka sätt finns det att lagra information om en anonym/gästanvändare i en databas?

  2. Mysql/Php - Aktuellt datum och tid

  3. Proxy-baserad dynamisk datamaskering i FieldShield

  4. Fel-Försök av metoden 'X.set_DbConnection(System.Data.Common.DbConnection)' för att komma åt metoden 'Y.get_Settings()' misslyckades