PostgreDB
heroku는 dyno라는 컨테이너를 쓴다.
dyno는 스테이트리스 서버로 데이터를 이미지 형태로 관리 한다.
스테이트리스 서버는 가상 머신을 넘나들며 돌아 다닌다.
웹서버가 사용자의 작업을 기억하고 있지 않고 새로운 정보를 만들때 기존의 정보는 날아가고 기존의 소스코드 형태로 이미지를 채운다.
fileDB를 쓸 수가 없다.
heroku에서 Free tier(무료)로 제공하는 DB가 바로 PostgreDB이다.
mySQL이 무료에서 유료로 바뀌면서 PostgreDB가 뜨기 시작했다.
10000Records 정도 제공을 해서 외부 공개 용으로는 무리가 있지만 테스트 용도로는 나쁘지 않다.

터미널에서 아래의 명령어 입력
heroku addons:create heroku-postgresql:hobby-dev
현재 앱에 postgresql DB가 추가되고 티어는 hobby-dev(취미 개발)로 무료 버전이 추가이 된다.

DATABASE_URL이 추가 되었다.
heroku config
를 입력하여 config를 확인하면
DATABASE_URL이 추가된 것을 알 수 있다.
go get github.com/lib/pq
깃허브에 있는 pq 라이브러리를 받아온다.
pq db를 사용하기 위해 핸들러를 만들어 준다
기존 sqliteHandler.go를 pqHandler.go에 복사 붙여 넣기한 후 구조체 이름과 메서드를 pqHandler로 바꿔준다.

model.go NewDBHandler를 newPQHandler(dbconn)으로 수정해준다.

newPQHandler의 타입과 경로 수정

main.go의 app.MakeHandler 경로 수정
DB마다 sql 문법이 조금씩 다르기 때문에 postgreDB에 맞게 수정해 준다.

1). id의 자동 증가 부분을 SERIAL PRIMARY KEY로 수정한다.


3). DATETIME을 TIMESTAMP로 수정


4). sqlite와는 다르게 postgre에서는 두가지 커멘드를 한번에 넣을 수 없기 때문에 작업을 나누어 준다.


5).LastInsertId()는 사용할 수 없으므로 RETURNING id를 추가
수정한 내용을 커밋하고 푸쉬한다.