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

你可能感兴趣的:(django,数据库)