dev/데이터베이스 (20) 썸네일형 리스트형 PostgreSQL DATE_PART 함수 PostgreSQL에서 날짜를 계산해야 하는 경우 DATE_PART 함수를 사용하면 됩니다. 위의 예제를 보면 DATE_PART 함수의 첫 번째 파라미터로 "DAY"를 두 번째 파라미터로 현재 날짜(2021년 3월 17일)와 2021년 3월 1일의 차이를 전달하고 있습니다. 그러면 해당 함수의 결과 값으로 "16"을 정상적으로 반환하고 있습니다. 날짜 계산할 때 서버에서 자바로 하는 것보다 PostgreSQL의 DATE_PART 함수를 사용하는 것이 더 편리한 거 같습니다. Postgresql 테이블 복원 Postgresql 테이블을 복원하는 방법 2가지를 포스팅하려고 합니다. 첫 번째는 copy를 이용한 방법이고 두 번째는 pg_restore를 이용한 방법입니다. copy는 단순히 데이터를 테이블에 복사하는 명령어입니다. 따라서 데이터를 복사할 대상 테이블이 먼저 있어야 합니다. 그리고 csv 파일을 copy 명령어를 통해 복원하면 됩니다. 하지만 저의 기대와 달리 위 화면처럼 에러 메시지가 표출되었습니다. 그 이유는 copy 명령어는 superuser, 즉 postgres 계정만 사용할 수 있기 때문입니다. 따라서 psql의 \copy 명령어를 사용해야 합니다. psql로 데이터베이스에 접속한 뒤 \copy 명령어를 사용하면 데이터를 복원할 수 있습니다. 데이터가 제대로 복원되었는지 확인하겠습니다. 데.. Windows postgis 설치 앞서 작성한 포스팅에 이어 postgis 설치하는 과정입니다. 먼저 postgis에 대해 간단히 설명하면 postgis는 PostgreSQL의 확장 프로그램이라고 생각하시면 됩니다. 무난히 동의 버튼 클릭합니다. 디폴트로 PostGIS만 설치합니다. (추가로 데이터베이스 설치하실 거면 아래 체크박스 선택합니다.) postgis 설치 경로 화면입니다. PostgreSQL의 설치로 경로를 잡고 next 버튼 클릭합니다. postgis는 PostgreSQL에 비해 설치 과정이 간단합니다. PostgreSQL가 설치된 경로로 설치경로 설정하고 나머지 과정은 디폴트 설정으로 진행하면 됩니다. Windows PostgreSQL 설치 및 백업 회사에서 기존에 운영하던 윈도우 운영 서버를 클라우드 윈도우 서버로 이관하는 작업을 하게 됐습니다. DB도 옮겨야 하는 대상 중에 하나여서 dump 파일로 만들어서 옮기려고 했는데 같은 윈도우인 경우 PostgreSQL의 데이터 경로만 복사해서 옮겨주면 쉽게 할 수 있다고 해서 (리눅스는 해당 안된다고 하네요ㅠ) 이번에 이 방법을 사용했습니다. 먼저 클라우드 서버에 PostgreSQL을 설치해야 합니다. PostgreSQL의 디폴트 설치 경로가 아닌 다른 경로로 설정합니다. 저는 pgAdmin4를 자주 사용하지 않아서 제외했습니다. PostgreSQL의 디폴트 데이터 경로가 아닌 다른 데이터 경로로 설정합니다. 여기서 데이터 경로는 실제 데이터가 저장되는 경로입니다. postgres(PostgreSQL의.. pg_dump 사용법 PostgreSQL 백업하는 방법인 pg_dump 사용법입니다. 간단한 방법이니 금방 하실 수 있습니다. pg_dump 명령어를 사용하기 위해서 먼저 pg_dump가 있는 디렉터리로 이동해야 합니다. 이동이 끝났으면 이제 pg_dump 명령어를 사용하면 됩니다. 위 명령어 화면을 보시게 되면 ">" 를 기준으로 2가지로 나눌 수 있습니다. ">" 왼쪽에 있는 명령어는 백업할 데이터베이스를 가리키고 (h: 호스트명-ip, p: 포트번호, -U: 로그인ID, -d: 데이터베이스 이름) ">" 오른쪽에 있는 파일명은 백업할 dump 파일을 가리킵니다. (dump 파일 위치는 사용자 정의) 다시 정리하면 ">" 왼쪽에 있는 데이터베이스를 오른쪽에 있는 파일명으로 복사하는 것으로 이해하시면 됩니다. pg_dump.. upsert 쿼리 예제 프로젝트 진행하면서 upsert(update + insert) 쿼리가 필요한 때가 많은데 대학생때 배웠던 기본적인 select, insert, update, delete 와 달라서 upsert 쿼리 이해하느라 고생했던 적이 있었다. 이번 예제 쿼리 보면 앞으로 유용하게 쓸 수 있을 거 같다. 위의 예제를 보면 col1이 6인 로우에 "TEST ROW6"을 col2에 upsert 한다는 예제쿼리이다. 먼저 서브쿼리로 update를 작업한 뒤 수행한 행을 리턴한다.(1번 with문) 그리고 서브쿼리에서 받은 결과값이 있는지 조회해서(3번 select) 결과값이 없으면 insert를 수행하고 있으면 수행하지 않는다.(2번 insert) upsert 쿼리 작업한 테이블은 위와 같이 잘 반영되었다. PostgreSQL 백업 쿼리 생성 PostgreSQL 사용하면서 백업하는 경우가 있는데 이런 경우 주로 dump 파일을 만들어서 사용했었다. 하지만 MS-SQL처럼 백업 쿼리 생성하는 기능이 필요할 때가 있는데 PostgreSQL에는 그런 기능이 없는 거 같아서 고민하던 중(백업 쿼리 만드는 기능 있으면 댓글 달아주세요~) concat함수를 이용하면 가능하다는 생각이 들어 직접 쿼리를 만들었다. 테이블 데이터 삭제한 뒤 실행결과 복사해서 쿼리 실행했는데 데이터 복구가 잘 되었다. dump 파일 말고 이처럼 백업 쿼리가 필요한 경우에 사용하면 유용할 거 같다. PostgreSQL 비밀번호 변경 PostgreSQL 비밀번호를 잊어버려서 변경해야 하는 경우 다음과 같이 쿼리를 실행하면 된다. ALTER USER 아이디 with password 비밀번호; 아이디는 ' 를 붙일 필요가 없고, 비밀번호만 ' 붙이면 된다. 이전 1 2 3 다음