django之数据库操作ORM(Django怎么读)
使用 models.py 生成对应的表结构makemigrations:根据检测到的模型创建新的迁移,自动生成python语句,如:
migrations/0001_initial.py
。这个命令只是生成python文件,不会作用到数据库中migrate:执行刚生成的python脚本,在数据库中生成对应 表/字段 ,同时记录到 django_migrations 表中操作流程1.删除之前的数据库,并把没有变动的主机表
和用户
表增加到新数据库中mysqldump -uroot -p123456 aoshuapi > /tmp/aoshuapi_20220914.sql2.重新生成django数据库表结构
mysql -uroot -p123456 -e "drop database aoshuapi;"
mysql -uroot -p123456 -e "create database aoshuapi;
# 在jenkins上发布
# 将备份数据库的 gamedata_assetzone auth_user 插入新数据库中
cp -ar /opt/hefu/config/hefu.conf /application/aoshuapi/merge/hefu/config/
python3 manage.py makemigrations方案缺陷
python3 manage.py migrate
可以保证每次的数据库变更都是生效的,但是删除数据库,需要停服才能进行操作。并且当数据量过大时,停服时间会变得很长
优化版本因为makemigrations生成了对应的python脚本,进而在数据库生成对应数据库操作;我们可以直接通过修改python文件及操作数据库来完成操作即可
版权声明
本文仅代表作者观点,不代表博信信息网立场。