django 데이터 이전 실천

배경:
동료와 짝짓기 개발을 시작하여 한 사람당 sqlite3 파일 데이터베이스로 설정을 저장하는데 두 가지 문제가 있습니다
  • django의migrate를 사용하는 것은 번거롭고db 를 써야 한다router 등 제어 동기화
  • 나중에 온라인에서 문제가 발견되었다. 바로 파일 데이터베이스를 쓸 때 uwsgi의 touch-reload 메커니즘을 터치하여 프로젝트를 재개하는 것이다
  • 프로젝트는 계속 개발될 것이고 데이터 양이 많아질 것이다. 파일 데이터베이스는 장기적인 계획이 아니다
  • 그래서 두 개의 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

    좋은 웹페이지 즐겨찾기