SvelteKit 프로젝트 생성
https://kit.svelte.dev/docs/creating-a-project
$ npm create svelte@latest my-app
$ cd my-app
$ npm install
$ npm run dev
EdgeDB 설치
https://www.edgedb.com/docs/cli/index 를 봐도 되는데, 나는 그냥 https://github.com/edgedb/homebrew-tap 보고 brew로 설치했음
$ brew install edgedb/tap/edgedb-cli
EdgeDB 생성 및 실행
https://www.edgedb.com/docs/intro/projects#initializing
$ edgedb project init
$ npx @edgedb/generate edgeql-js
$ edgedb ui
scheme 작성
-
dbschema/default.esdl
수정 - 로그인을 위해 미리
using extension auth
추가했음
using extension auth;
module default {
type user {
name: str;
}
}
migration 생성 및 적용
$ edgedb migration create
$ edgedb migrate
이후 브라우저에서 user 테이블에 테스트 사용자 추가
프로젝트에 EdgeDB 연결
https://www.npmjs.com/package/edgedb
$ npm i edgedb
app.d.ts
설정
import { Client } from "edgedb";
declare global {
namespace App {
interface Locals {
db: Client;
}
}
}
export {};
hooks.server.js
설정
import * as edgedb from "edgedb";
export const handle = async ({ event, resolve }) => {
const client = edgedb.createClient();
event.locals.db = client;
return resolve(event, {
filterSerializedResponseHeaders(name) {
return name === "content-range";
}
});
};
user 정보 가져오기
page.server.js
수정
export async function load({ locals }) {
const user = await locals.db.query("select user { id, name }");
return { user };
}
orm을 사용하고 싶다면 https://www.edgedb.com/docs/clients/js/index 참고