在生产服务器上的Django数据库设置

12 浏览
0 Comments

在生产服务器上的Django数据库设置

我在使用Django数据库配置时遇到了问题,配置的数据库是'postgresql_psycopg2'。

如果我给我的数据库任意起一个名字,就像下面这样:

DATABASES = {
    'default': {
        'ENGINE': 'postgresql_psycopg2',
        'NAME': 'xyz',
        'USER': 'postgres',
        'PASSWORD': '${my_password}',
        'HOST': '',
        'PORT': '',
        'OPTIONS': {
            "autocommit": True,
        }
    }
}

我遇到了以下错误:

OperationalError at /

FATAL: database "xyz" does not exist

我查了很多资料,发现和SQLite一样,我们必须指定数据库的绝对路径;与之类似,对于PostGRE也是如此。

我想知道:

1)为什么我在上述配置中会得到错误消息?

2)我如何在文件系统(Windows)中使用我正在开发服务器布局所使用的数据库?

0
0 Comments

问题出现的原因是在使用PostGreSQL时,需要指定数据库的名称,而不是绝对路径。解决方法是通过在dbshell中输入命令来创建数据库,然后再次运行syncdb命令。

具体解决方法如下:

1. 进入dbshell(python manage.py dbshell),输入命令\l查看数据库列表。如果数据库xyz不存在,输入命令create database xyz创建该数据库,然后退出postgres shell,再次运行syncdb命令。

2. 对于开发服务器,建议使用sqlite3数据库,因为它易于使用。只需将ENGINE设置为sqlite3,指定保存数据库的绝对路径,然后运行python manage.py syncdb命令。

具体解决方法如上所述,应该可以解决问题。

0