본문 바로가기
Study/postgresql

Postgresql data insert 하기

by Zeromk2 2024. 2. 7.
728x90

개인적으로 코끼리를 좋아합니다. 짱 쎄거든요

 

기존 postgresql 설치와 설정에 이어 두번째 시간입니다. 이번에는 직접 데이터를 적재하는 방법입니다.

지난번 내용을 모르신다구요? 걱정마세요 하단에 링크를 첨부합니다!

 

postgresql 설치와 설정 (install & setting) for Mac

무료 오픈소스인 postgresql 의 설치와 설정법입니다. 저는 mysql과 mongoDB는 사용해봤는데 postgresql은 처음 사용해봐서 과정 정리 겸 다시한번 과정을 곱씹어보는 포스팅입니다 ㅎㅎ 이번에 테스트

goddessbest-qa.tistory.com

 

 

postgresql을 python으로 사용하기 위해서는 패키지 설치가 필요합니다.

1. python 패키지 설치에 도움을 주는 또다른 친구 pip를 사용해 설치합니다.

pip install psycopg2-binary

 

 

2. 패키지 설치가 끝났다면 사용을 위해 import 해줍니다.

(datetime은 밑에 코드와 관련이 있어서 했습니다)

 import psycopg2
 
 from datetime import datetime

 

 

3. DB connecttion을 해보겠습니다.

 def db_connection():
     connection = psycopg2.connect(
         host={host},
         port={post},
         user={db user},
         password={db password},
         database={database name}
     )
     cursor = connection.cursor()
     return connection, cursor

return되는 값 중 connection에는 연결정보가 저장되어 있고,

cursor로는 SQL 쿼리를 실행하고 쿼리의 결과를 검색하거나 조작할 수 있게 됩니다.

둘다 return하는 이유는 connection을 끊을 때 둘다 닫아줘야 하기 때문입니다.

 

 

4. 데이터를 insert 해보겠습니다

os column은 varchar, time_stamps는 timestamp, test_results는 varchar type으로 설정되어 있습니다.

테스트 결과가 실패면 error code와 error reason 내용을 가져와 적재하고, 성공이면 적재하지 않도록 했습니다.

 def insert_data(connection, cursor, self, result_data):
     data_to_insert = {
         "os": {platform OS},
         "time_stamps": datetime.now(),
         "test_results": {test result},
     }
 
     # 추가 삽입 데이터 (테스트 결과 실패일때 추가 정보 입력)
     if result_data.get("test_result") == 'FAIL':
         data_to_insert["err_code"] = {error code}
         data_to_insert["err_reason"] = {error reason}
     else:
         data_to_insert["err_code"] = None
         data_to_insert["err_reason"] = None
  
     # SQL 쿼리 생성 및 실행
     insert_query = """
            INSERT INTO test_result (
                os, time_stamps, test_results, err_code, err_reason
            ) VALUES (%s, %s, %s, %s, %s)
        """
 
     cursor.execute(insert_query, (
         data_to_insert["os"],
         data_to_insert["time_stamps"],
         data_to_insert["test_results"],
         data_to_insert["err_code"],
         data_to_insert["err_reason"]
     ))
 
     # 변경사항 저장
     connection.commit()

 

 

5. data insert가 완료되었다면 연결을 해제해 줍니다.

 def disconnect_db(connection, cursor):
     cursor.close()
     connection.close()

 

'Study > postgresql' 카테고리의 다른 글

postgresql 설치와 설정 (install & setting) for Mac  (2) 2024.01.25

댓글