Django 1.9.5 创建数据库表

使用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作废:

python manage.py makemigrations

python manage.py migrate --fake

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

python manage.py makemigrations yourAppName

python manage.py migrate yourAppName

这样就OK了.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值