Closed punkyoon closed 7 years ago
저번에 언급된 산발적인 db 충돌상황도 이 문제때문인 것 같음!
<문제상황> (written by @punkyoon)
총 5단계 거치면서 중간중간에 참여자가 볼 수 있는 슬라이드 리스트에서 슬라이드들이 사라지는 경우 목격됨
django는 postgreSQL과 잘 어울린다고 하네요!
저 글 읽어보니까 확실히 postgresql이 나아보이긴 합니다~
+1 psql!
지나가다 psql에 1따봉 드리고 갑니다.
PostgreSQL로 가죠! 추가적으로 #14 에서 생겼던 이슈도 확인합시다.
http://egloos.zum.com/ita9naiwa/v/4211543
sudo apt-get update
sudo apt-get install python3-dev libpq-dev postgresql postgresql-contrib
sudo apt-get update
sudo apt-get install python-dev libpq-dev postgresql postgresql-contrib
sudo su - postgres
psql
CREATE DATABASE codingnightlive;
CREATE USER cnluser WITH PASSWORD ‘temporary’;
ALTER ROLE cnluser SET client_encoding TO 'utf8';
ALTER ROLE cnluser SET default_transaction_isolation TO 'read committed';
ALTER ROLE cnluser SET timezone TO 'UTC-9';
GRANT ALL PRIVILEGES ON DATABASE codingnightlive TO cnluser;
\q
exit
postgreSQL로 전환시 일부 TextField -> JSONField로 변경 필요
위의 링크된 자료는 ubuntu 14.04 기준으로 작성된 문서를 번역한 것입니다. 아래의 링크는 ubuntu 16.04를 기준으로 새로이 작성된 문서입니다.
psql codingnightlive
\d
5d1ad47e1f9367326d0e881dda0ece2118b77957
사용자 입장에서 deploy를 할 때,
codingnightlive
DB 생성codingnightlive
DB 관리 계정 생성 (username : cnluser
/ password ; temporary
)
++ coding_night_live/coding_night_live/settings.py
의 DATABASES
에 적혀있는 username
, password
와 같아야 함그러면 automation 문제는 어떻게 해결해야하나요? postgreSQL로 쿼리를 날리는 방식이 있나요?
@juice500ml 그 부분에 대해서 조금 더 찾아봐야 할거같아요~~~ 일단 연동 자체는 완료하고, 잘 동작하는 거 까진 확인했습니다. 추가로 일부 필드를 JSONField로 변경 해주는 것이 남아있어요.
psycopg2를 사용하기에는 약간의 제약사항이 있는 것 같아, Makefile로 만들어보고 있는 중입니다.
3164e1b174573f8f4ddc9e1514107c345008323c
42033349546d96de130fefb9a9f7f4528df64324
우선은 test/
폴더안에 Makefile
을 만들어 두었습니다.
제대로 잘 동작하는 것 까지는 확인했는데, 기존에 만들어둔 Makefile과 병합해야할 필요가 있는 것 같습니다.
@juice500ml @minhoryang @fuzzythecat @taeseunglee
** 참고한 자료들
https://github.com/makinacorpus/ODE/blob/master/Makefile
https://www.postgresql.org/docs/9.3/static/app-dropdb.html
http://stackoverflow.com/questions/28585171/how-to-alter-role-from-command-line-in-postgresql
domain name이 너무 길어서 django.db.utils.DataError: value too long for type character varying(40)
오류가 발생하는 경우, psql
에서 ALTER TABLE socialaccount_socialapp ALTER COLUMN name TYPE character varying(65);
명령 입력!
postgreSQL Makefile 병합
Docker - postgreSQL 작성
위 두가지 사항만 완료되면 이 이슈를 닫을 수 있습니다.
찔림
makefile지금 살펴봤어요! 잘 동작하도록 짜여진 것 같아서 makefile merge하는걸 @taeseunglee 님이 진행하셔도 좋을 것 같습니다! 저는 2번 Docker-postgreSQL작성하는거 진행할게요.
spot instance하나 띄워서 테스트해보고있는데.... ㅠㅡㅠ 설정 잘못해서. 비싸게샀어용 ㅠㅠㅠ
secret_key_gen.py가 빠졌네요...는 저의 불찰입니다. 우와우... a135e31fb5bc0c87d2e94023e04a7435b96bd6fd 이런실수를하다니.
https://github.com/dduk-ddak/coding-night-live/compare/issue_83_docker
현재 남은 문제가 2개가 있는데요
1번은 사용자가 수동으로 make docker-prepare하면 될 것 같구요. (짜는중) 2번은 db가 켜질때까지 worker가 그냥 잘 기다릴 수 있을 것 같아서..(엉?) 1번 다 짜고 테스트해볼게요. 요청만 없으면 되지 않을까욥..?
이제 남은 문제는 Makefile
합치기, 문서화, postgre pw정도가 있는 거 맞나요?
@juice500ml @minhoryang @fuzzythecat @taeseunglee
(ACK) 넵 그렇습니다~
으아;;; 끝냅시다! ㅠㅠㅠ
리뷰를 해주시면 감사히 받겠습니다! @punkyoon @juice500ml @taeseunglee
makefile
에서 이런식으로 .prepared
의 여부를 가지고, 처음에만 실행하고, 그 다음번부터 실행하지 않도록 플래그처럼 파일을 썻었는데요.
.prepared:
echo Ready
touch .prepared
echo Set
goal: .prepared
echo Go
얘가 .prepared
로 하면 안되고 .prepared.out
으로 하면 되는걸 발견했습니다.
그러니까 확장자가 있어야하는데요... f**k
그걸 넣었습니다.
이상하고 아름다운 makefile나라
그리고 이미 파일이 존재해서, 다시 빌드할 필요가 없는걸 timestamp로 비교하더라구요. 그러니까 makefile을 수정하면, 다시 저 .prepared로 들여가려고 합니다. (이건 못고침)
하... makefile어렵당;;; 빨리 버리고 python으로 가고싶어요
어쩌다보니 python으로 시작해서 makefile로 했다가 다시 python으로 돌아가야하는 상황이 되었군요..
이 이슈가 닫히고 나면,
http://guswnsxodlf.github.io/automate-deploy-using-fabric
https://beomi.github.io/2017/03/20/Deploy-Django-with-Fabric/
Fabric으로 바꾸는 작업을 계속 진행해야할 것 같습니다.
그것도 제가 총대매볼게요ㄲㄲㅋㅋㅋㅋ
한번 돌려보시고, 테스트해보시겠어요?
@minhoryang 잘동작하는거 확인했습니다!
그럼 이 이슈 닫고 master에 머지할까요?
@minhoryang 네 바로 병합해도 될 것 같네요!
$ sudo apt install fabric
$ fab deploy
$ sudo circusd circus.ini
실제 서비스할 때, 많은 수의 유저 접속과 데이터 변경등을 DB가 견뎌 낼지 의문입니다.
이제부터
sqlite
를 쓰기에는 어려울 것 같고,MySQL
이나PostgreSQL
를 사용해야할 것 같은데 어떤게 좋을까요?