django更新数据库结构(不删库!不停服!)

本文分享了如何在Django项目中实现数据库的热更新,包括注意事项与具体操作步骤,帮助开发者更好地理解和应用。

    有一段时间没写博客了,前阵子折腾公司分给我的小破网站,各种查资料,找有关已上线的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操作数据库的语言。

    以上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值