2014-10-14 12 views
6

Sono un db dummy e sto cercando di impostare PostgreSQL per il mio progetto django. Per questo uso anche psycopg2. Tuttavia, i database sono complicati. Personalmente mi piacerebbe se ci fosse un modo per ottenere TUTTI i miei DATABASE- e USER-IMPOSTAZIONI/INFO in un unico posto. Quindi sapevo cosa collegare e come (sto ancora eseguendo locale quindi non c'è alcun problema di sicurezza con quello?).Errore operativo: FATAL: il database "django" non esiste

Tuttavia sembra che non disponga dei "diritti" per creare questo database, anche se mi collego allo standard "admin" -user "postgres". Con la password che ho digitato in installazione ("Justdoit_90").

Django-progetto (settings.py):

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'django',      
     'USER': 'postgres', 
     'PASSWORD': 'Justdoit_90', 
     'HOST': '127.0.0.1', 
     'PORT': '5432', 
    } 
} 

CMD -> shell manage.py python (dopo l'importazione django.db connessione)

>>> cursor = connection.cursor() 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 165, in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 138, in _cursor 
    self.ensure_connection() 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 133, in ensure_connection 
    self.connect() 
    File "C:\Python27\lib\site-packages\django\db\utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 133, in ensure_connection 
    self.connect() 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 122, in connect 
    self.connection = self.get_new_connection(conn_params) 
    File "C:\Python27\lib\site-packages\django\db\backends\postgresql_psycopg2\base.py", line 134, in get_new_connection 
    return Database.connect(**conn_params) 
    File "C:\Python27\lib\site-packages\psycopg2-2.5.4-py2.7-win32.egg\psycopg2\__init__.py", line 164, in connect 
    conn = _connect(dsn, connection_factory=connection_factory, async=async) 
OperationalError: FATAL: database "django" does not exist 

Ho fatto qualcosa di sbagliato nel installazione? Posso correggerlo? Dovrei considerare la reinstallazione di tutto? Come potrei andare su questo? I database mi sono confuse: P

+5

è necessario creare prima il database. –

+0

Sì, ma come? Inoltre penso di aver letto che se non ne avessi uno, questo metodo ne creerebbe uno .. Non sto creando il database chiamato "django" facendo questo, perché è tutto ciò che voglio (!?): P – howtopythonpls

risposta

10

PostgreSQL non auto-creare database sul primo collegamento. È necessario creare un database prima di poterlo utilizzare.

Connettersi a PostgreSQL (in genere al database di amministrazione, denominato "postgres"), tramite PgAdmin-III o il client di riga di comando psql e creare il database . Da PgAdmin-III puoi farlo tramite i menu; da psql si utilizza the CREATE DATABASE SQL command.

Vedere anche Creating a PostgreSQL database nel manuale e this tutorial I found in a 5second google search that doesn't look totally wrong.

Quello che mi piacerebbe fare è connettersi utilizzando psql (lo si può trovare nel menu Start) come utente dei 'postgres', con la password impostata al momento dell'installazione, quindi:

CREATE USER django WITH PASSWORD 'somepassword'; 

CREATE DATABASE django WITH OWNER django ENCODING 'utf-8'; 
+0

Non sapevo che psql era un prompt dei comandi, ora capisco che tutti i comandi sono andati. Scusa se ho Windows 8. Lo proverò! Grazie! – howtopythonpls

+0

@howtopythonpls Non è sul PATH predefinito quindi, a meno che non abbiate modificato il PATH, vorrete qualcosa come '% PROGRAMFILES% \ PostgreSQL \ 9.3 \ bin \ psql' se lo affermate direttamente dal prompt dei comandi. O puoi semplicemente usare la voce del menu Start per questo. –

0

Tutto quello che è necessario creare il database con il nome django nel postgresql. Per impostazione predefinita, l'utente postgres avrà il privilegio sul database django e la password sarà la password per l'utente postgres.

Problemi correlati