URL 단축기 만들기 - 3. DB 셋업
일단 quickstart에 나와있는대로 packages/backend
폴더에서 edgedb project init을 해줬습니다.
인스턴스 이름은 url_shortener.
edgedb 커맨드가 접속을 실패해서 삽질하다가 /etc/hosts
파일을 수정했어요.
docker desktop에 의해서 127.0.0.1 -> localhost가 아닌 kubernetes.docker.internal?로 설정되어 있었나봐요. 어쨌든 그런걸로 접속이 안되길래 제일 위에 127.0.0.1 localhost
를 추가해줬어요.
뭐 어쨌든! db 세팅이 되었습니다. 이제 스키마를 짜볼건데요.
dbSchema/default.esdl
파일을 열어줍니다.
시작하기 전에, 우리가 짜야할 스키마를 먼저 정해봅시다.
- 유저 정보
- 링크 정보
이 2가지면 충분하겠죠?
스키마 문서를 읽으면서 열심히 스키마를 써줬습니다.
module default {
type User {
required property userId -> str {
constraint exclusive;
}
required property username -> str;
required property admin -> bool {
default := false;
}
multi link urls -> Url;
}
type Url {
required property slug -> str {
constraint exclusive;
}
required property url -> str {
constraint regexp(r'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)'); # https://stackoverflow.com/a/3809435
}
}
}

이렇게 스키마를 만들어줬어요. 이제 db에 적용해 봅시다.
edgedb migration create
edgedb migrate
아마 필요한게 이거밖에 없진 않을거지만 일단 여기까지만 하겠습니당!
(지금은 생각이 안나요..)
소스코드
GitHub - paringparing/url-shortener: something
something. Contribute to paringparing/url-shortener development by creating an account on GitHub.