本篇文章将从数据库迁移的原理出发,详细谈一谈在进行数据库迁移过程中的问题。
django框架就是一款强大的ORM框架,可以不需要写sql语句就能进行应用开发。 ————官方说明文档
一、
首先,简短说一下数据库迁移。说白了,其实就是将数据库中的数据导出为sql语句来进行sql操作。而对于django而言,强大之处就在于在通过迁移命令执行数据库迁移后,生成迁移sql语句脚本进行相应的数据库操作。
在数据库迁移之前,我们首先要生成迁移文件,命令耳熟能详
python manage.py makemigrations
或者单独对某一模块进行迁移操作
python manage.py makemigrations [模块名]
这样就生成了迁移文件,在相对应的项目应用中可以看到migrations文件夹下,生成一个新的以数字打头的迁移文件。
而下一步就是执行迁移操作了
python manage.py migrate
或者单独迁移某一模块
python manage.py migrate [模块名]
迁移过之后,我们会发现在数据库中多了迁移模型的数据表,查看相应表也可以看到我们所建立的字段和类型。
但也多了几张表,其中一张便是django_migrations,这张表即是记录我们在每次执行迁移操作时记录的迁移文件的数据表。具体记录的是模块和与其对应的迁移文件名。
二、
在我们协同开发过程中,遇到模型复用和更新迭代是最常见的事情,有时候我们会多次数据库迁移来对旧表进行修改。但随着迭代版本的增加太多的迁移文件有时却让自己很烦,在版本控制时也会产生一些冲突和意想不到的bug。那么有时候就需要重新迁移文件,所以在