django数据迁移实践

背景:

开始和同事结对开发,一人一个sqlite3文件数据库来保存配置,有两个问题

  1. 使用django的migrate很麻烦,还得写db_router等控制同步
  2. 后来上线发现个问题,那就是文件数据库写的时候会触发uwsgi的touch-reload 机制而重启项目
  3. 项目会继续开发下去数据量会变多,文件数据库不是长久之计

所以决定迁移两个sqlite数据库到同一个mysql数据库

安装MySQL:
yum install -y mysql-devel mysql-server
配置MySQL
# 编辑配置文件
vim /ect/my.cnf
# 修改datadir为数据盘目录,例如我的是/data
# 初始化root密码
/usr/bin/mysqladmin -u root password 'passw0rd'
# 登录创建表,用户,权限
mysql -uroot -p
> create database foo_db;
> create user foo_user identified by 'foo_password';
> grant all on foo_db.* to 'foo_user'@'%';
> flush privileges;
删掉之前的migtations文件并重新再数据库中生成表
导出数据
python manage.py dumpdata app1 --database=old_db1 >> app1.json
python manage.py dumpdata app2 --database=old_db2 >> app2.json
导入数据
# 默认导入的数据库为`default` ,--database=default可以忽略
python manage.py loaddata app1.json
python manage.py loaddata app2.json
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值