mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-12 21:08:46 +00:00
사용자 관련 DB 스키마 생성
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -7,11 +7,15 @@ node_modules
|
|||||||
.wrangler
|
.wrangler
|
||||||
/.svelte-kit
|
/.svelte-kit
|
||||||
/build
|
/build
|
||||||
|
/drizzle
|
||||||
|
|
||||||
# OS
|
# OS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
# VSCode
|
||||||
|
/.vscode
|
||||||
|
|
||||||
# Env
|
# Env
|
||||||
.env
|
.env
|
||||||
.env.*
|
.env.*
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { defineConfig } from "drizzle-kit";
|
|||||||
if (!process.env.DATABASE_URL) throw new Error("DATABASE_URL is not set");
|
if (!process.env.DATABASE_URL) throw new Error("DATABASE_URL is not set");
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
schema: "./src/lib/server/db/schema.ts",
|
schema: "./src/lib/server/db/schema",
|
||||||
|
|
||||||
dbCredentials: {
|
dbCredentials: {
|
||||||
url: process.env.DATABASE_URL,
|
url: process.env.DATABASE_URL,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
"lint": "prettier --check . && eslint .",
|
"lint": "prettier --check . && eslint .",
|
||||||
"db:push": "drizzle-kit push",
|
"db:push": "drizzle-kit push",
|
||||||
|
"db:generate": "drizzle-kit generate",
|
||||||
"db:migrate": "drizzle-kit migrate",
|
"db:migrate": "drizzle-kit migrate",
|
||||||
"db:studio": "drizzle-kit studio"
|
"db:studio": "drizzle-kit studio"
|
||||||
},
|
},
|
||||||
|
|||||||
29
src/lib/server/db/schema/device.ts
Normal file
29
src/lib/server/db/schema/device.ts
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import { sqliteTable, text, integer, primaryKey } from "drizzle-orm/sqlite-core";
|
||||||
|
import { user } from "./user";
|
||||||
|
|
||||||
|
export enum UserDeviceState {
|
||||||
|
PENDING = 0,
|
||||||
|
ACTIVE = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
export const device = sqliteTable("device", {
|
||||||
|
id: integer("id").primaryKey(),
|
||||||
|
pubKey: text("pub_key").notNull().unique(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const userDevice = sqliteTable(
|
||||||
|
"user_device",
|
||||||
|
{
|
||||||
|
userId: integer("user_id")
|
||||||
|
.notNull()
|
||||||
|
.references(() => user.id),
|
||||||
|
deviceId: integer("device_id")
|
||||||
|
.notNull()
|
||||||
|
.references(() => device.id),
|
||||||
|
state: integer("state").notNull().default(0),
|
||||||
|
encKey: text("enc_key"),
|
||||||
|
},
|
||||||
|
(t) => ({
|
||||||
|
pk: primaryKey({ columns: [t.userId, t.deviceId] }),
|
||||||
|
}),
|
||||||
|
);
|
||||||
2
src/lib/server/db/schema/index.ts
Normal file
2
src/lib/server/db/schema/index.ts
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export * from "./device";
|
||||||
|
export * from "./user";
|
||||||
@@ -2,5 +2,6 @@ import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
|
|||||||
|
|
||||||
export const user = sqliteTable("user", {
|
export const user = sqliteTable("user", {
|
||||||
id: integer("id").primaryKey(),
|
id: integer("id").primaryKey(),
|
||||||
age: integer("age"),
|
email: text("email").notNull().unique(),
|
||||||
|
password: text("password").notNull(),
|
||||||
});
|
});
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<p>서비스를 이용하려면 로그인을 해야해요.</p>
|
<p>서비스를 이용하려면 로그인을 해야해요.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-4 flex flex-col gap-y-2">
|
<div class="mt-4 flex flex-col gap-y-2">
|
||||||
<TextInput placeholder="아이디" />
|
<TextInput placeholder="이메일" />
|
||||||
<TextInput placeholder="비밀번호" type="password" />
|
<TextInput placeholder="비밀번호" type="password" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user