有一段时间没写博客了,前阵子折腾公司分给我的小破网站,各种查资料,找有关已上线的django项目怎么在后期维护和更新数据库相关的博客,但是搜索结果不尽人意(好多让我删库的!),最后自己摸索加上对于django的orm数据表映射的再深一些的理解,终于是成功达到了自己期望的效果,这里分享给新的读者,让他们少走些弯路。
首先,django项目支持热更新,也就是在项目运行过程中的一些代码改动,是可以不停机实时生效的,但是这个支持只针对前端界面以及一部分不影响现有功能的新的后端逻辑,具体有哪些本次不赘述,这里只是提一下。而数据库的改动,也是可以热更新的,当然,有一些限制:
1、需要另起一个终端或者命令行界面运行model文件的映射
2、修改的内容如果涉及前端界面的显示,先修改数据库再修改前端界面,否则前端会报错
3、已经存有数据的表或者列尽量不要删除如果非要删除:
1)已存有数据的表可以直接删除,但是删除前请先处理相关的前端显示以及后端逻辑耦合
2)已存有数据的列不能删除,无论是否停机
然后,上面的内容是一些注意事项,而实际的操作也非常简单
python manage.py makemigrations
python3 manage.py migrate
就是这两个命令,当初我找了许久,别人给了这两个命令,但是又告诉我要删库,那肯定不能够啊(其实就是菜,没理解这两个命令到底干嘛)。
如果不好用可以稍作修饰:
python manage.py makemigrations APP名称
python3 manage.py migrate APP名称
不过这里涉及到一个中间文件,就是位于migrations文件夹下的所有的.py文件,这些是model文件映射出来的实际操作文件,里面的内容其实就是把Model的改动转变为python操作数据库的语言。
以上。