Django sqlite驱动程序生成的SQL



需要您的帮助,尤其是在sqlite3中:开始写django的书,第一步我就被卡住了。我注意到在创建一个参数时

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

在models.py中,输出必须像这个

BEGIN;
CREATE TABLE "polls_poll" (
  "id" serial NOT NULL PRIMARY KEY,     
  "question" varchar(200) NOT NULL,    
  "pub_date" timestamp with time zone NOT NULL
);

相反,我得到的是

BEGIN;
CREATE TABLE "polls_poll" (
    "id" integer NOT NULL PRIMARY KEY,
    "question" varchar(200) NOT NULL,
    "pub_date" datetime NOT NULL
);

不明白我做错了什么。尝试重新创建数据库,但结果保持不变

我相信您使用的django版本与polls教程中使用的版本不同。此外,您可能正在使用不同版本的SQLite。然而,我可以说的是,生成的SQL将满足您的需求,您应该不会遇到任何问题。

我不确定,但它可能与sqlite数据类型有关

http://www.sqlite.org/datatype3.html

django教程中的

SQL输出是针对PostgreSQL数据库引擎的,我想这一点没有提得很清楚。

在SQLite的情况下,django将时区感知日期时间转换为UTC。对于PostgreSQL,它使用内置的时区字段:

https://docs.djangoproject.com/en/1.5/topics/i18n/timezones/#postgresql

最新更新