这发生在 Ubuntu 上的 Mezzanine 4.0.1 中,在 venv 中。Python 3.4.3
创建 Mezzanine 项目后,我将 settings.py 中的数据库连接设置更改为:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "mezzaninedb",
"USER": "mezzanine",
"PASSWORD": "mezzaninepwd",
"HOST": "localhost",
"PORT": "5432",
}
}
我已经(在 Postgresql 中)创建了一个 Mezzanine 用户,密码为 mezzaninepwd 和数据库 mezzaninedb,并且我“GRANT ALL PRIVILEGES ON DATABASE mezzaninedb TO mezzanine;”
比,我跑:
python manage.py createdb
它在终端中显示它应该显示的所有内容,要求我创建用户、电子邮件、密码......完成后,我将“psql”放入 postgresql 并连接到 mezzaninedb,但在该(PostgreSQL)数据库中没有创建表。 但是,dev.db 是在“本地目录”中创建的,当我运行时
python manage.py runserver
我可以看到夹层 UI,但夹层使用的是 Sqlite。
即使我从 settings.py 中完全删除它也会发生这种情况
#DATABASES = {
#"default": {
# "ENGINE": "django.db.backends.postgresql_psycopg2",
# "NAME": "mezzaninedb",
# "USER": "mezzanine",
# "PASSWORD": "mezzaninepwd",
# "HOST": "localhost",
# "PORT": "5432",
#}
#}
我什至试图从 settings.py 中完全“从字面上删除”这一部分并运行
python manage.py createdb
它创建了所有表,但在 sqlite - dev.db 中。
因此,它从不创建 postgresql 表,但总是创建 sqlite db 和表,即使 DATABASES {...} 不存在。
我怀疑这可能是DJANGO的问题,所以我创建了django项目和django app,以及一些模型。在 settings.py 中使用相同的 DATABASE {...} 后,运行
python manage.py syncdb
表是在 POSTGRESQL 中创建的!!!
顺便提一下,我也试过了
python manage.py syncdb
在夹层中,它的行为与 createdb 相同 -没有在 PostgreSQL 中创建任何东西。
这是已知的夹层问题还是我做错了什么?