2016-04-30 412 views
1

我有一個困難的時間與postgres設置django。致命錯誤:數據庫不存在

這裏是我的settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql', 
     'HOST': 'localhost', 
     'NAME': 'collector', 
     'USER': 'collector_user', 
     'PASSWORD': 'collector' 
    } 
} 

我創建了密碼收集用戶collector_user在Postgres的第一步網站。還創建了收集器模式:

postgres=# select nspname from pg_catalog.pg_namespace; 
     nspname  
-------------------- 
pg_toast 
pg_temp_1 
pg_toast_temp_1 
pg_catalog 
public 
information_schema 
collector 
(7 rows) 

這裏是什麼Django的不得不說的是:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 345, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 348, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 399, in execute 
    output = self.handle(*args, **options) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 89, in handle 
    executor = MigrationExecutor(connection, self.migration_progress_callback) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 20, in __init__ 
    self.loader = MigrationLoader(self.connection) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 49, in __init__ 
    self.build_graph() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 176, in build_graph 
    self.applied_migrations = recorder.applied_migrations() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/recorder.py", line 65, in applied_migrations 
    self.ensure_schema() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/recorder.py", line 52, in ensure_schema                   
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):                   
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 231, in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 204, in _cursor 
    self.ensure_connection() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
    self.connect() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 95, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
    self.connect() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 171, in connect 
    self.connection = self.get_new_connection(conn_params) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql/base.py", line 175, in get_new_connection 
    connection = Database.connect(**conn_params) 
    File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 164, in connect 
    conn = _connect(dsn, connection_factory=connection_factory, async=async) 
django.db.utils.OperationalError: FATAL: database "collector" does not exist 

我也試過下降數據庫和用戶,嘗試重新建立它。它也沒有工作。可能是什麼問題?有沒有我沒有做的事情?我是新來的postgres,我通常在MySQL上工作。

+0

顯示輸出\ l – Rhim

回答

2

在PostgreSQL中,架構不是數據庫。您在名爲'postgres'的數據庫中創建了一個名爲'collector'的模式。但是你試圖連接到名爲'collector'的數據庫。這不存在,因爲你沒有創建它。您應該創建一個名爲'collector'的數據庫,然後僅保留架構(即默認爲「公共」)。

創建的「Postgres的數據庫的新模式通常是不好的做法,無論如何,作爲名爲」Postgres的數據庫通常應該保留給系統維護任務。

+0

這改變了一切!我創建了數據庫,現在它工作。謝謝! –