【发布时间】:2013-04-09 13:56:51
【问题描述】:
我正在尝试将基于 MySQL 的 Django 项目迁移到 PostgreSQL。不幸的是,一旦我在 settings.py 中切换数据库后端,所有 sql/syncdb 命令都会失败。
python manage.py sql profile 带 MySQL:
BEGIN;
CREATE TABLE `profile_department` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(100) NOT NULL UNIQUE,
[...]
python manage.py sql profile 带 PostgreSQL (psycopg2):
DatabaseError: relation "profile_department" does not exist
LINE 1: ...nt"."homepage", "profile_department"."gd_id" FROM "profile_d...
^
为什么 Django 对两个数据库后端的行为不同?
【问题讨论】:
-
查看数据库时有没有表?
-
请显示为 Postgres 执行的
create table语句(它不是您发布的那个)。 -
生成sql时为什么要从DB查询?看起来你有一个在模块加载时触发的查询......啧啧......
-
不,数据库仍然是空的——这是意料之中的,因为
sql命令只打印 SQL 语句。 – 使用 PostgreSQL 语句时没有CREATE TABLE语句 – 只有这个错误消息。 – 我不是从数据库查询,只是尝试在我的新(空)PostgreSQL 数据库中创建表(如果成功,我将清理数据库并发出syncdb命令从 JSON 夹具加载数据(使用dumpdata从 MySQL 数据库创建)。
标签: django postgresql