关于Django的迁移,需要知道的是大体上是针对于models的迁移,此前提为该models所在模块已经在settings文件中注册过,这样才能让Django发现它的存在。
继续回到正题,在此之后主要使用下列命令对其进行操控,在用户根目录下,即于manage.py同级目录下
python manage.py makemigrations
python manage.py migrate
但问题到了这里还只是刚刚开始,在我这里发生的一个状况是项目需要迁移换到另一台机器中执行,而一部分数据库中的数据需要使用sql导入以保留数据,在项目迁移后运行了起来,但是我并没有执行models迁移,因为只要配置的数据库的参数正确,就可以直接使用,然而事情到这还没有结束……
在很多天之后,因为需求变化需要对项目进行功能扩展,于是乎新建了model继续生成迁移,迁移是可以生成的但是却无法执行迁移,错误是表已经存在,遂上网查得到解决方法是在命令后加上参数 --fake强行迁移
python manage.py migrate --fake
这样执行确实没有报错,但是问题却是新的models并没有被迁移,随后把迁移文件和数据库中的迁移记录表中对应的记录删除,重新迁移,仍然不行,问题在于目前已使用的数据库已经生成,所以解决问题的方案有两种