实在是气的不行,被坑的太难受了,为了防止有人继续走弯路,我来写这篇文章了。
本人属于大学需要做项目,自己摸索着使用django,所以最开始django的数据库就是个老大难的问题,当我生成的数据表我想删除时,我去网上查了很多解答,那些办法不仅复杂的不行,还无数次的把我的数据库整崩,然后我就不断的重新建新的数据库以至于完全不敢对数据库进行任何改动,今天经过不断摸索,终于知道了django如何非常简洁的删除数据表以及对数据表进行改动。不多说言归正传。
网上的所有对于django删除数据表的解答大体来可以总结如下:
1首先删除数据表,使用drop命令
2删除migrations中的initial文件
3删除django_migrations中的对应的行
4注释掉views方法(因为调用了数据库)
5重新运行python manage. py makemigrations和python manage. py migrate
本人一直使用这种方法删除数据表,结果就是数据库一次又一次被整崩了,然后就很让人崩溃。在我的细心研究下,我发现这并不适应需要主动删除数据表的人,这种方法适应于不小心删除了某张数据表而导致使用python manage. py make migrations 无法生成迁移文件或者使用python manage. py migrate 无法转移迁移文件到数据库的人。真正需要主动删除数据表的方法如下:
1 找到models.py文件,里面有你的各个数据表,直接删除掉你想删除的数据表的生成代码
2 然后将所有调用到该数据表的地方注释掉,重新运行python manage. py make migrations 和python manage. py migrate 即可。
3 对于需要增加或者删除数据表的属性同理,直接对数据表的生成代码操作后重新运行
python manage. py makemigrations 和python manage. py migrate即可。但需要注意,添加属性的属性值需要添加一个default,比如style=models.CharField(max_length=200,default=‘i’)