URL 단축기 만들기 - 3. DB 셋업

URL 단축기 2022년 12월 5일

일단 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.

태그

파링

바보