Django 1.9.5 创建数据库表

时间:2022-12-15 08:28:03

使用Django + MySQL 来开发一个需要进行数据读写交互的网站.

首先设计自己的数据库, 在app中的models.py内定义表格,定义完表格之后需要在MySql中创建表格.

大家可以在Django官网和其它博客与网站上看到,基本上所有的信息都是在说实用 python manage.py makemigrations 和 python manage.py migrate就可以创建表了.

我遇到的问题是, 手动在数据库内更改过表或者删除了表之后,无法在Django 1.9.5上无法使用python manage.py makemigrations 和 python manage.py migrate重新创建数据库中的表格. 

经过尝试和资料查询,发现Django是不会自动探索数据库内的数据表的, 所以你跳过Django手动操作数据库的情况, Django是不知道.因此在使用Django的过程中, 尽量不要手动操作数据库. 也不要将sqlall语句和migrate语句混用了.

那么万一手动操作数据库之后又无法通过Django进行恢复怎么办?

第一个办法就是手动恢复数据库表, 估计没人愿意这么做 :)

第二个办法是通过Django 才操作, 我们需要做的是执行下面两条命令将所有的之前的migration作废:

pythonmanage.pymakemigrations

pythonmanage.pymigrate--fake

然后, 在执行重新执行一遍

pythonmanage.pymakemigrations yourAppName

pythonmanage.pymigrateyourAppName

这样就OK了.