본문 바로가기

Dev/Django

Django-Mysql 엔진 설정

728x90
반응형

django는 기본적으로 sqlite를 사용하고 있다.

 

또한 mysql을 디폴트로 설정을 하게 되면 models를 통해 Table 생성 시 기본 엔진은 MyISAM으로 설정되어 있다.

 

DB 엔진에 대한 구분은 여기서 논하지 않겠습니다.

 

Mysql Inno를 사용하기 위해서 설정하는 방법입니다.

 

설정은 settings.py에서 설정을 하게 됩니다.

 

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'share_res',
        'USER': 'root',
        'PASSWORD': 'apmsetup',
        'HOST': '127.0.0.1',
        'PORT': '3306'        
    }
}

기본적으로 설정한 DB 정보이다.

기본 설정시 테이블 생성 정보

 

이부분에서 OPTION을 추가하여 엔진을 설정할 수가 있다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'share_res',
        'USER': 'root',
        'PASSWORD': 'apmsetup',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': 'set storage_engine=InnoDB;',
            'autocommit': False,
            'charset': 'utf8'
        }
    }
}

위의 설정중 init_command를 보면 된다. 여기서 set storage_engine를 보면 innoDB를 볼 수 있다.

기타로 autocommit 여부와 캐릭터셋을 설정했다.

 

이후 프로젝트 APP 폴더에서 manage.py가 있는 폴더에서 makemigrations후에 migrate를 하면 DB innoDB로 생성된 테이블을 확인할 수가 있다.

python manage.py makemigrations
python manage.py migrate

DB엔진 변경 후 테이블 생성 정보

 

Mysql InnoDB 엔진 설정은 이거로 끝!!

728x90
반응형

'Dev > Django' 카테고리의 다른 글

django model Table 삭제 방법  (1) 2020.10.20
내부망 접속 방법  (0) 2020.10.19
Django-DATABASES init_command 멀티 설정  (0) 2020.08.31
Django-한국시간 설정  (0) 2020.08.31
django3.x-mysql 5.1 migrate 오류  (0) 2020.08.25