MySQL을 SQLite로 변경

dev | 2021-12-05

업데이트를 안하고 있는 사이트가 있는데 MySQL을 사용하고 있다. 서버 사양이 낮다보니 젠체 메모리 사용량이 80%~90%정도 인데 MySQL만 내려도 상당히 많은 메모리를 확보할 수 있어서 MySQL을 SQLite로 옮겨봤다.

먼저 데이터 옮기는 방법을 찾아봤는데 이미 몇가지 MySQL을 SQLite로 변환하는 방법이 있었다. LazSqlX은 윈도우 프로그램이래서 스킵하고 RebaseData를 사용해 봤다. 웹사이트에 MySQL 덤프 파일만 업로드 하면 간단하게 변환이 된다. 무료일 경우는 100줄만 변환되는 제약이 있는데 나중에 구매할 생각으로 변환된 SQLite 데이터베이스 파일로 테스트를 해봤다. 그런데 오작동하는 부분을 보니 타입이 맞지 않아서 그런 경우들이 많고 실제로 변환된 데이터베이스를 보니 타입이 하나도 없는 상태로 변환이 됐다. 그래서 mysql2sqlite를 사용해 봤다. 맥에서는 시간이 너무 많이 걸려서 작동을 안하는 줄 알았는데 우분투에서 돌리니까 금방 변환이 됐다. 데이터 타입도 다 변환되어서 오작동 하는 부분도 없어졌다.

데이터베이스를 바꿨으니 DB 의존적인 구문을 바꿔줘야 하는데 PHP에서 MySQL 구문을 SQLite 구문으로 바꿔주는 방법을 정리한 글이 있어서 이 글을 참조해서 코드 일괄 수정으로 바꿔줬다. SELECT냐 아니냐에 따라 exec를 쓸지 query를 쓸지 나뉘는 부분과 fetchArray 구문에 손이 많이 갔고 나머지는 쉽게 변경됐다. 결과로 SQLite 버전의 제로보드4가 나왔다.

Comments

    Post a comment

    :

    : 공개 되지 않습니다. Gravatar를 표시 합니다.

    :

    : HTML 태그를 사용할 수 없습니다.