django数据迁移实践

来源:互联网 发布:淘宝虚假交易不清洗 编辑:程序博客网 时间:2024/04/28 07:15
背景:

开始和同事结对开发,一人一个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.jsonpython manage.py dumpdata app2 --database=old_db2 >> app2.json
导入数据
# 默认导入的数据库为`default` ,--database=default可以忽略python manage.py loaddata app1.jsonpython manage.py loaddata app2.json
1 0
原创粉丝点击