【解决】Django下使用sqlite3的相关问题

最近在玩Django,想用它写一个很小很小的项目,Django自带数据库sqlite3,本来项目也小,我就用它了。

玩意虽小,东西却不是那么好用的。

首先,在项目中建立模型,一个例子是这样的:

class Milestone(models.Model):
    Content = models.CharField(max_length=500)
    Date = models.DateField()

然后,在python命令行中键入:python manage.py syncdb

OK ,它将在sqlite3数据库中自动建立表enrich_milestone,它包含Content和Date字段。

后来我想把Date的属性改为char型,于是修改了模型,变成这样:

class Milestone(models.Model):
    Content = models.CharField(max_length=500)
    Date = models.CharField(max_length=200)

注意,这时候再次使用python manage.py syncdb是无效的,它并不会去同步数据库的修改,也就是说,它可以同步的真是数据库从无到有的过程,如果数据库已经存在,它不会侦测数据库内部是否变动并帮你修改,让人挺不爽的。

怎么办

我去sqlite的官网下载了一个sqlite3.exe下来,x86的,官网没有x64的,既然没有,我想应该是通用的,试了一下果然如此。

我把sqlite3.exe反正项目目录下,和本项目的数据库db.sqlite3一起,在此打开命令行窗口,进入sqlite。

1、用.open 载入db.sqlite文件

2、可以用.databases查看该文件下有哪些数据库,用.tables查看有哪些表

3、我直接drop table 表名(这个是标准sql语句吧),把它删除

4、返回Django使用python manage.py syncdb把数据库表从无到有同步过来,大功告成

posted on 2014-10-02 00:19  RAUL_AC  阅读(5822)  评论(0编辑  收藏  举报

导航