Python sqlite3 사용법(aka. SQLite DB 연동)

SQLite3는 매우 가볍고 부담이 적어서 모바일 어플리케이션에서도 많이 사용합니다. 그럼 Python sqlite3 사용법을 알아보겠습니다. Python sqlite3 사용법 개요 SQLite3 패키지 설치부터 DB 연결과 테이블 생성, 데이터 추가, 업데이트, 삭제를 해 볼 것입니다. 그리고 쿼리 결과를 튜플로 받지 않고 Python의 Dictionary 객체로 가져오는 방법과 커서 및 DB 연결을 종료하는 방법까지 쭉 살펴보겠습니다. 위에 목차가 있으니까, 필요한 … Read more

Python mysqlclient 설치 오류 해결 방법 2가지(MySQLdb)

Python에서 MySQL 데이터베이스에 엑세스할 때 사용하는 라이브러리 중에 MySQLdb가 쉽게 설치되지 않는 경우가 있습니다. Ubuntu와 Windows에서 mysqlclient 설치시에 발생하는 문제와 해결하는 방법을 함께 알아보도록 하겠습니다. Ubuntu 환경에서 mysqlclient 설치 mysqlclient 설치 오류 상황 만약 Anaconda를 사용하면서 위와 같은 명령을 실행했는데 아래와 같은 오류가 발생하는 경우가 있습니다. Anaconda 사용시 설치 오류 해결 방법 아나콘다를 사용하는 경우에는 … Read more

Python 대용량 테이블 쿼리 속도 느려지는 문제 해결 방법 3가지

Python에서 큰 용량의 테이블에 자료를 insert하고 update 하다가 속도 느려지는 문제 경험하셨나요? 그랬다면 오랜 시간을 기다려야 해서 힘드셨죠? 대용량 테이블 쿼리 속도 빠르게 insert, update 할 수 있는 방법 3가지 알려드립니다. 속도 느려지는 문제 발견(INSERT, UPDATE 쿼리) 테이블 하나에 약 800만개의 레코드를 가진 테이블(약 1.2GB)을 만들고 분석할 일이 있었습니다. 그런데 매일 새로 생긴 데이터를 추가해주고, … Read more

phinx 실행시 timezone 문제 발생하는 경우

사실 phinx의 문제라기보다는 php 환경변수로 timezone이 설정되지 않아서 발생하는 경고 메시지이다. 필자는 phinx를 사용하여 마이그레이션하려할 때 아래와 같은 경고 메시지를 받았다. Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and … Read more

phinx db migration tool setting

phinx.yml 에서 host를 localhost로 할 때엔 unix_socket을 정해줘야 한다. host가 localhost인데 unix_socket이 설정되어 있지 않으면, 다음과 같은 에러를 보게 된다. [InvalidArgumentException] There was a problem connecting to the database: SQLSTATE[HY000] [2002] No such file or directory unix_socket을 사용하지 않으려면 host를 127.0.0.1로 하면 된다. 참고자료: https://stackoverflow.com/questions/22188026/sqlstatehy000-2002-no-such-file-or-directory/25782795#25782795

Database migration with alembic or phinx

어떤 언어로 개발하든 데이터베이스를 수정할 일이 생기는 경우가 발생한다. 개발자의 개발 머신과 테스트 서버 그리고 상용 서버에 이르기까지 모두 적용해 주어야 한다. 때로는 어떤 상황으로 되돌아가야 하는 경우도 생긴다. 이와 같은 DB 변경 사항 적용을 마이그레이션이라 부르며, CodeIgniter나 Laravel 그리고 Django에서는 마이그레이션 기능을 내장하고 있다. 프레임워크와 별도로 작동하는 패키지가 있는지 찾아보다가 두 가지를 발견하였다. alembic은 … Read more