Django가 SQLite 데이터베이스를 Mysql 데이터베이스로 변환하는 방법

대부분의 초보자는 Django 개발을 처음 배울 때 기본적으로 SQLite 데이터베이스를 사용하며, 온라인 배포 시에는 대부분 Mysql을 사용합니다. 그렇다면 데이터베이스를 SQLite에서 Mysql로 ​​마이그레이션하려면 어떻게 해야 할까요?

이전에는 기본적으로 SQLite 데이터베이스를 사용했는데, 개발을 완료하고 나면 그 안에 많은 데이터가 있습니다. Mysql 데이터베이스로 변환하려면 먼저 SQLite에서 이전 데이터를 내보낸 다음 새 Mysql 데이터베이스로 가져와야 합니다.

1. SQLite 내보내기 데이터

내보내기 전에 settins.py 데이터베이스 구성 옵션이 여전히 SQLite 구성을 사용하고 있는지 확인하십시오. 수정된 경우 먼저 다시 수정하십시오.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

그런 다음 CMD 명령줄에 다음을 입력합니다.

python manage.py dumpdata > data.json

Django 프로젝트의 루트 디렉터리에 있는 data.json 파일로 데이터를 내보냅니다.

2. MySQL은
동일한 데이터를 가져옵니다. 먼저 Django 데이터베이스 구성을 MySQL로 변경합니다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '你的数据库名',
        'USER': '你的MySQL用户名',
        'PASSWORD': '你的密码',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

먼저 데이터 테이블에 해당하는 마이그레이션 폴더를 찾아 보관 __pycache__ 하고  __init__.py 정리하고 나머지는 삭제합니다.

그런 다음 먼저 다음 명령 줄을 실행합니다.

python manage.py makemigrations

그런 다음 다음 명령줄을 실행합니다.

python manage.py migrate

그런 다음 CMD 명령줄에 다음을 입력합니다.

python manage.py loaddata data.json

프로젝트를 다시 실행하고 성공적으로 실행되는지 확인합니다.

알아채다:

Mysql 사용자 테이블이 비어 있는지 확인하십시오. 이전에 Mysql로 ​​데이터를 마이그레이션한 경우 오류가 발생할 수 있습니다. 무언가 잘못되었을 때 보고되는 오류 메시지에 주의하십시오. 중복 기본 키가 있다는 메시지가 표시되면 먼저 데이터를 삭제해야 합니다. 이러한 데이터는 마이그레이션 파일이 MySQL 데이터베이스에 적용될 때 생성되며 일반적으로 content_type 관련 테이블입니다.

MySQL을 입력하고 다음 SQL 문을 실행합니다.

use 你的数据库名;
delete from auth_permission;
delete from django_content_type;

데이터를 삭제한 후 가져오기 명령을 다시 실행하십시오. 기본적으로 데이터를 가져올 수 없는 이유는 MySQL에 데이터가 있기 때문입니다.

추천

출처blog.csdn.net/muzihuaner/article/details/130664972