当前位置 : 主页 > 编程语言 > python >

django之数据库操作ORM

来源:互联网 收集:自由互联 发布时间:2022-09-29
使用 ​​models.py​​ 生成对应的表结构 makemigrations:根据检测到的模型创建新的迁移,自动生成python语句,如:​​migrations/0001_initial.py​​。 这个命令只是生成python文件,不会作用

使用 ​​models.py​​ 生成对应的表结构

  • makemigrations:根据检测到的模型创建新的迁移,自动生成python语句,如:​​migrations/0001_initial.py​​。
  • 这个命令只是生成python文件,不会作用到数据库中
  • migrate:执行刚生成的python脚本,在数据库中生成对应 表/字段 ,同时记录到 django_migrations 表中

操作流程

  • 1.删除之前的数据库,并把没有变动的​​主机表​​和​​用户​​表增加到新数据库中
mysqldump -uroot -p123456 aoshuapi > /tmp/aoshuapi_20220914.sql
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/
  • 2.重新生成django数据库表结构
python3 manage.py makemigrations
python3 manage.py migrate

方案缺陷

可以保证每次的数据库变更都是生效的,但是删除数据库,需要停服才能进行操作。并且当数据量过大时,停服时间会变得很长

优化版本

因为makemigrations生成了对应的python脚本,进而在数据库生成对应数据库操作;我们可以直接通过修改python文件及操作数据库来完成操作即可

上一篇:Python工具箱系列(八)
下一篇:没有了
网友评论