Postgres FATAL 数据库不存在 Django

4 投票
1 回答
6360 浏览
提问于 2025-04-18 02:07

我看到很多人问关于Ruby的问题,但没有人问过DJango。我们有一个Postgres数据库,并且用我们的Postgres用户创建了一个名为Adam的表。当你运行psql -l时,这个表是能显示出来的。然而,当我们尝试运行迁移时却出现了错误。

FATAL:  database "/var/lib/pgsql/9.3/data/Adam" does not exist

运行psql -l的结果是这样的:

Name       |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------------+----------+----------+-------------+-------------+-----------------------
 Adam      | postgres     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

Django的settings.py文件看起来是这样的……

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': os.path.join('/var/lib/pgsql/9.3/data/', 'Adam'),
        'USER': 'postgres',
        'PASSWORD': 'correctlyTypePassword'
    }
}

有没有人知道为什么它会认为这个表不存在呢?

1 个回答

8

你的数据库设置有问题。这里的“名称”应该指的是数据库的名字,而不是它的路径。试试这样:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'Adam',
    'USER': 'postgres',
    'PASSWORD': 'correctlyTypePassword'
    }
}

撰写回答