์ด ํํ ๋ฆฌ์ผ์ ์ปค๋ฎค๋ํฐ ๊ธฐ์ฌ๋ก ์ ๊ณต๋๋ฉฐ Open WebUI ํ์์ ์ง์ํ์ง ์์ต๋๋ค. ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ Open WebUI๋ฅผ ์ปค์คํฐ๋ง์ด์งํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๋ฐ๋ง ์ฌ์ฉ๋ฉ๋๋ค. ๊ธฐ์ฌํ๊ณ ์ถ์ผ์ ๊ฐ์? ๊ธฐ์ฌ ํํ ๋ฆฌ์ผ์ ํ์ธํ์ธ์.
[!WARNING]
์ด ๋ฌธ์๋ ํ์ฌ ๋ฒ์ (0.5.11)์ ๊ธฐ๋ฐํ์ฌ ์์ฑ๋์์ผ๋ฉฐ ์ง์์ ์ผ๋ก ์
๋ฐ์ดํธ๋๊ณ ์์ต๋๋ค.
Open-WebUI ๋ด๋ถ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค
Open-WebUI์ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉ์ ๊ด๋ฆฌ, ์ฑํ
๊ธฐ๋ก, ํ์ผ ์ ์ฅ ๋ฐ ๋ค์ํ ํต์ฌ ๊ธฐ๋ฅ์ ๊ทผ๊ฐ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ ํ๋ก์ ํธ์ ํจ๊ณผ์ ์ผ๋ก ๊ธฐ์ฌํ๊ฑฐ๋ ์ ์ง ๊ด๋ฆฌํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ํ์์ ์
๋๋ค.
๋ด๋ถ SQLite ์์นโ
SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ root
-> data
-> webui.db
์์ ์ฐพ์ ์ ์์ต๋๋ค.
๐ Root (/)
โโโ ๐ data
โ โโโ ๐ cache
โ โโโ ๐ uploads
โ โโโ ๐ vector_db
โ โโโ ๐ webui.db
โโโ ๐ dev.sh
โโโ ๐ open_webui
โโโ ๐ requirements.txt
โโโ ๐ start.sh
โโโ ๐ start_windows.bat
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก์ปฌ ๋ณต์ฌโ
์ปจํ
์ด๋์์ ์คํ ์ค์ธ Open-WebUI SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ก์ปฌ ์ปดํจํฐ๋ก ๋ณต์ฌํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
docker cp open-webui:/app/backend/data/webui.db ./webui.db
๋๋ ์ปจํ
์ด๋ ๋ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
docker exec -it open-webui /bin/sh
ํ
์ด๋ธ ๊ฐ์โ
Open-WebUI์ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํ
์ด๋ธ ์ ์ฒด ๋ชฉ๋ก์
๋๋ค. ํ
์ด๋ธ์ ์ํ๋ฒณ ์์๋ก ๋์ด๋์ด ์์ผ๋ฉฐ ํธ์๋ฅผ ์ํด ๋ฒํธ๊ฐ ์ง์ ๋์์ต๋๋ค.
No. | ํ
์ด๋ธ ์ด๋ฆ | ์ค๋ช
|
---|
01 | auth | ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค |
02 | channel | ์ฑํ
์ฑ๋ ๋ฐ ํด๋น ๊ตฌ์ฑ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋ ๋ค |
03 | channel_member | ์ฑ๋ ๋ด ์ฌ์ฉ์ ๋ฉค๋ฒ์ญ ๋ฐ ๊ถํ์ ์ถ์ ํฉ๋๋ค |
04 | chat | ์ฑํ
์ธ์
๊ณผ ํด๋น ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค |
05 | chatidtag | ์ฑํ
๊ณผ ๊ด๋ จ๋ ํ๊ทธ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋งคํํฉ๋๋ค |
06 | config | ์์คํ
์ ์ฒด ๊ตฌ์ฑ ์ค์ ์ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค |
07 | document | ์ง์ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ฌธ์ ๋ฐ ํด๋น ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค |
08 | feedback | ์ฌ์ฉ์ ํผ๋๋ฐฑ ๋ฐ ํ๊ฐ๋ฅผ ์บก์ฒํฉ๋๋ค |
09 | file | ์
๋ก๋๋ ํ์ผ ๋ฐ ํด๋น ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค |
10 | folder | ํ์ผ๊ณผ ์ฝํ
์ธ ๋ฅผ ๊ณ์ธต์ ๊ตฌ์กฐ๋ก ์กฐ์งํฉ๋๋ค |
11 | function | ์ฌ์ฉ์ ์ ์ ํจ์์ ํด๋น ๊ตฌ์ฑ์ ์ ์ฅํฉ๋๋ค |
12 | group | ์ฌ์ฉ์ ๊ทธ๋ฃน ๋ฐ ํด๋น ๊ถํ์ ๊ด๋ฆฌํฉ๋๋ค |
13 | knowledge | ์ง์ ๋ฒ ์ด์ค ํญ๋ชฉ ๋ฐ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค |
14 | memory | ์ฑํ
๊ธฐ๋ก ๋ฐ ์ปจํ
์คํธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค |
15 | message | ๊ฐ๋ณ ์ฑํ
๋ฉ์์ง ๋ฐ ํด๋น ์ฝํ
์ธ ๋ฅผ ์ ์ฅํฉ๋๋ค |
16 | message_reaction | ๋ฉ์์ง์ ๋ํ ์ฌ์ฉ์ ๋ฐ์(์ด๋ชจํฐ์ฝ/์๋ต)์ ๊ธฐ๋กํฉ๋๋ค |
17 | migrate_history | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ฒ์ ๋ฐ ๋ง์ด๊ทธ๋ ์ด์
๊ธฐ๋ก์ ์ถ์ ํฉ๋๋ค |
18 | model | AI ๋ชจ๋ธ ๊ตฌ์ฑ ๋ฐ ์ค์ ์ ๊ด๋ฆฌํฉ๋๋ค |
19 | prompt | AI ํ๋กฌํํธ์ฉ ํ
ํ๋ฆฟ ๋ฐ ๊ตฌ์ฑ์ ์ ์ฅํฉ๋๋ค |
20 | tag | ์ฝํ
์ธ ๋ถ๋ฅ๋ฅผ ์ํ ํ๊ทธ/๋ ์ด๋ธ์ ๊ด๋ฆฌํฉ๋๋ค |
21 | tool | ์์คํ
๋๊ตฌ ๋ฐ ํตํฉ ๊ตฌ์ฑ์ ์ ์ฅํฉ๋๋ค |
22 | user | ์ฌ์ฉ์ ํ๋กํ ๋ฐ ๊ณ์ ์ ๋ณด๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค |
์ฐธ๊ณ : Open-WebUI์ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ Open-WebUI์ ํต์ฌ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จ๋์ง ์์ ๋ ๊ฐ์ ์ถ๊ฐ ํ
์ด๋ธ์ด ์์ผ๋ฉฐ, ์ ์ธ๋์์ต๋๋ค:
- Alembic ๋ฒ์ ํ
์ด๋ธ
- ๋ง์ด๊ทธ๋ ์ด์
๊ธฐ๋ก ํ
์ด๋ธ
์ด์ ๋ชจ๋ ํ
์ด๋ธ์ ์ดํดํ์ผ๋, ๊ฐ ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ์์๋ด
์๋ค.
Auth ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ |
email | String | - | ์ฌ์ฉ์์ ์ด๋ฉ์ผ |
password | Text | - | ํด์๋ ๋น๋ฐ๋ฒํธ |
active | Boolean | - | ๊ณ์ ์ํ |
Auth ํ
์ด๋ธ์ ๋ํด ์์์ผ ํ ์ฌํญ๋ค:
- ๊ธฐ๋ณธ ํค๋ก UUID ์ฌ์ฉ
users
ํ
์ด๋ธ๊ณผ ์ผ๋์ผ ๊ด๊ณ (๊ณต์ id)
Channel ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | Text | - | ์ฑ๋์ ์์ ์/์์ฑ์ |
type | Text | nullable | ์ฑ๋ ์ ํ |
name | Text | - | ์ฑ๋ ์ด๋ฆ |
description | Text | nullable | ์ฑ๋ ์ค๋ช
|
data | JSON | nullable | ์ ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ์ |
meta | JSON | nullable | ์ฑ๋ ๋ฉํ๋ฐ์ดํฐ |
access_control | JSON | nullable | ๊ถํ ์ค์ |
created_at | BigInteger | - | ์์ฑ ํ์์คํฌํ (๋๋
ธ์ด ๋จ์) |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ (๋๋
ธ์ด ๋จ์) |
auth ํ
์ด๋ธ์ ๋ํ ์ฐธ๊ณ ์ฌํญ:
- ๊ธฐ๋ณธ ํค๋ก UUID ์ฌ์ฉ
- ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ์ฑ๋ ์ด๋ฆ (์๋ฌธ์๋ก ์ ์ฅ๋จ)
Channel Member ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | TEXT | NOT NULL | ์ฑ๋ ํ์ ๊ณ ์ ์๋ณ์ |
channel_id | TEXT | NOT NULL | ์ฑ๋ ์ฐธ์กฐ |
user_id | TEXT | NOT NULL | ์ฌ์ฉ์ ์ฐธ์กฐ |
created_at | BIGINT | - | ๋ฉค๋ฒ์ญ ์์ฑ ์์ ํ์์คํฌํ |
Chat ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | String | - | ์ฑํ
์์ ์ |
title | Text | - | ์ฑํ
์ ๋ชฉ |
chat | JSON | - | ์ฑํ
๋ด์ฉ ๋ฐ ๊ธฐ๋ก |
created_at | BigInteger | - | ์์ฑ ํ์์คํฌํ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ |
share_id | Text | UNIQUE, nullable | ๊ณต์ ์๋ณ์ |
archived | Boolean | default=False | ์์นด์ด๋ธ ์ํ |
pinned | Boolean | default=False, nullable | ๊ณ ์ ์ํ |
meta | JSON | server_default="" | ํ๊ทธ ํฌํจ ๋ฉํ๋ฐ์ดํฐ |
folder_id | Text | nullable | ๋ถ๋ชจ ํด๋ ID |
Chat ID Tag ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | VARCHAR(255) | NOT NULL | ๊ณ ์ ์๋ณ์ |
tag_name | VARCHAR(255) | NOT NULL | ํ๊ทธ ์ด๋ฆ |
chat_id | VARCHAR(255) | NOT NULL | ์ฑํ
์ฐธ์กฐ |
user_id | VARCHAR(255) | NOT NULL | ์ฌ์ฉ์ ์ฐธ์กฐ |
timestamp | INTEGER | NOT NULL | ์์ฑ ํ์์คํฌํ |
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช
|
---|
id | INTEGER | NOT NULL | - | ๊ธฐ๋ณธ ํค ์๋ณ์ |
data | JSON | NOT NULL | - | ๊ตฌ์ฑ ๋ฐ์ดํฐ |
version | INTEGER | NOT NULL | - | ๊ตฌ์ฑ ๋ฒ์ ๋ฒํธ |
created_at | DATETIME | NOT NULL | CURRENT_TIMESTAMP | ์์ฑ ํ์์คํฌํ |
updated_at | DATETIME | - | CURRENT_TIMESTAMP | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ |
Feedback ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | Text | - | ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ฌ์ฉ์ |
version | BigInteger | default=0 | ํผ๋๋ฐฑ ๋ฒ์ ๋ฒํธ |
type | Text | - | ํผ๋๋ฐฑ ์ ํ |
data | JSON | nullable | ๋ฑ๊ธ์ ํฌํจํ ํผ๋๋ฐฑ ๋ฐ์ดํฐ |
meta | JSON | nullable | ๋ฉํ๋ฐ์ดํฐ (arena, chat_id ๋ฑ) |
snapshot | JSON | nullable | ๊ด๋ จ ์ฑํ
์ค๋
์ท |
created_at | BigInteger | - | ์์ฑ ๋ ์ง ๋ฐ ์๊ฐ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ๋ ์ง ๋ฐ ์๊ฐ |
ํ์ผ ํ
์ด๋ธ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ |
user_id | String | - | ํ์ผ ์์ ์ |
hash | Text | nullable | ํ์ผ ํด์/์ฒดํฌ์ฌ |
filename | Text | - | ํ์ผ ์ด๋ฆ |
path | Text | nullable | ํ์ผ ์์คํ
๊ฒฝ๋ก |
data | JSON | nullable | ํ์ผ ๊ด๋ จ ๋ฐ์ดํฐ |
meta | JSON | nullable | ํ์ผ ๋ฉํ๋ฐ์ดํฐ |
access_control | JSON | nullable | ๊ถํ ์ค์ |
created_at | BigInteger | - | ์์ฑ ๋ ์ง ๋ฐ ์๊ฐ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ๋ ์ง ๋ฐ ์๊ฐ |
meta
ํ๋์ ์์ ๊ตฌ์กฐ:
{
"name": string,
"content_type": string,
"size": integer,
}
ํด๋ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
parent_id | Text | nullable | ๊ณ์ธต ๊ตฌ์กฐ์ ๋ถ๋ชจ ํด๋ ID |
user_id | Text | - | ํด๋ ์์ ์ |
name | Text | - | ํด๋ ์ด๋ฆ |
items | JSON | nullable | ํด๋ ์ฝํ
์ธ |
meta | JSON | nullable | ํด๋ ๋ฉํ๋ฐ์ดํฐ |
is_expanded | Boolean | default=False | UI ํ์ฅ ์ํ |
created_at | BigInteger | - | ์์ฑ ๋ ์ง ๋ฐ ์๊ฐ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ๋ ์ง ๋ฐ ์๊ฐ |
ํด๋ ํ
์ด๋ธ์ ๋ํด ์์์ผ ํ ์ฌํญ:
- ํด๋๋ ์ค์ฒฉ๋ ์ ์์ (parent_id ์ฐธ์กฐ)
- ๋ฃจํธ ํด๋๋ parent_id๊ฐ null์
- ๋์ผํ ๋ถ๋ชจ ๋ด์์ ํด๋ ์ด๋ฆ์ ๊ณ ์ ํด์ผ ํจ
ํจ์ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ |
user_id | String | - | ํจ์ ์์ ์ |
name | Text | - | ํจ์ ์ด๋ฆ |
type | Text | - | ํจ์ ์ ํ |
content | Text | - | ํจ์ ๋ด์ฉ/์ฝ๋ |
meta | JSON | - | ํจ์ ๋ฉํ๋ฐ์ดํฐ |
valves | JSON | - | ํจ์ ์ ์ด ์ค์ |
is_active | Boolean | - | ํจ์ ํ์ฑ ์ํ |
is_global | Boolean | - | ์ ์ญ ์ฌ์ฉ ๊ฐ๋ฅ ํ๋๊ทธ |
created_at | BigInteger | - | ์์ฑ ๋ ์ง ๋ฐ ์๊ฐ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ๋ ์ง ๋ฐ ์๊ฐ |
ํด๋ ํ
์ด๋ธ์ ๋ํด ์์์ผ ํ ์ฌํญ:
type
์ ๋ค์๋ง ๊ฐ๋ฅ: ["filter", "action"]
๊ทธ๋ฃน ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY, UNIQUE | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | Text | - | ๊ทธ๋ฃน ์์ ์/์์ฑ์ |
name | Text | - | ๊ทธ๋ฃน ์ด๋ฆ |
description | Text | - | ๊ทธ๋ฃน ์ค๋ช
|
data | JSON | nullable | ์ถ๊ฐ ๊ทธ๋ฃน ๋ฐ์ดํฐ |
meta | JSON | nullable | ๊ทธ๋ฃน ๋ฉํ๋ฐ์ดํฐ |
permissions | JSON | nullable | ๊ถํ ์ค์ |
user_ids | JSON | nullable | ๊ตฌ์ฑ์ ์ฌ์ฉ์ ID ๋ชฉ๋ก |
created_at | BigInteger | - | ์์ฑ ๋ ์ง ๋ฐ ์๊ฐ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ๋ ์ง ๋ฐ ์๊ฐ |
์ง์ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY, UNIQUE | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | Text | - | ์ง์ ๋ฒ ์ด์ค ์์ ์ |
name | Text | - | ์ง์ ๋ฒ ์ด์ค ์ด๋ฆ |
description | Text | - | ์ง์ ๋ฒ ์ด์ค ์ค๋ช
|
data | JSON | nullable | ์ง์ ๋ฒ ์ด์ค ์ฝํ
์ธ |
meta | JSON | nullable | ์ถ๊ฐ ๋ฉํ๋ฐ์ดํฐ |
access_control | JSON | nullable | ์ ๊ทผ ์ ์ด ๊ท์น |
created_at | BigInteger | - | ์์ฑ ํ์์คํฌํ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ |
access_control
ํ๋ ์์ ๊ตฌ์กฐ:
{
"read": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
},
"write": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
}
}
๋ฉ๋ชจ๋ฆฌ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ํ์
| ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | String | - | ๋ฉ๋ชจ ์์ ์ |
content | Text | - | ๋ฉ๋ชจ ๋ด์ฉ |
created_at | BigInteger | - | ์์ฑ ํ์์คํฌํ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ |
๋ฉ์์ง ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ํ์
| ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | Text | - | ๋ฉ์์ง ์์ฑ์ |
channel_id | Text | nullable | ๊ด๋ จ ์ฑ๋ |
parent_id | Text | nullable | ์ค๋ ๋๋ฅผ ์ํ ๋ถ๋ชจ ๋ฉ์์ง |
content | Text | - | ๋ฉ์์ง ๋ด์ฉ |
data | JSON | nullable | ์ถ๊ฐ ๋ฉ์์ง ๋ฐ์ดํฐ |
meta | JSON | nullable | ๋ฉ์์ง ๋ฉํ๋ฐ์ดํฐ |
created_at | BigInteger | - | ์์ฑ ํ์์คํฌํ (๋๋
ธ์ด) |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ (๋๋
ธ์ด) |
๋ฉ์์ง ๋ฐ์ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ํ์
| ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY | ๊ณ ์ ์๋ณ์ (UUID) |
user_id | Text | - | ๋ฐ์ํ ์ฌ์ฉ์ |
message_id | Text | - | ๊ด๋ จ ๋ฉ์์ง |
name | Text | - | ๋ฐ์ ์ด๋ฆ/์ด๋ชจ์ง |
created_at | BigInteger | - | ๋ฐ์ ํ์์คํฌํ |
๋ชจ๋ธ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ํ์
| ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | Text | PRIMARY KEY | ๋ชจ๋ธ ์๋ณ์ |
user_id | Text | - | ๋ชจ๋ธ ์์ ์ |
base_model_id | Text | nullable | ๋ถ๋ชจ ๋ชจ๋ธ ์ฐธ์กฐ |
name | Text | - | ๋์คํ๋ ์ด ์ด๋ฆ |
params | JSON | - | ๋ชจ๋ธ ๋งค๊ฐ๋ณ์ |
meta | JSON | - | ๋ชจ๋ธ ๋ฉํ๋ฐ์ดํฐ |
access_control | JSON | nullable | ์ ๊ทผ ๊ถํ |
is_active | Boolean | default=True | ํ์ฑ ์ํ |
created_at | BigInteger | - | ์์ฑ ํ์์คํฌํ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ |
ํ๋กฌํํธ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ํ์
| ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
command | String | PRIMARY KEY | ๊ณ ์ ์ปค๋งจ๋ ์๋ณ์ |
user_id | String | - | ํ๋กฌํํธ ์์ ์ |
title | Text | - | ํ๋กฌํํธ ์ ๋ชฉ |
content | Text | - | ํ๋กฌํํธ ๋ด์ฉ/ํ
ํ๋ฆฟ |
timestamp | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ํ์์คํฌํ |
access_control | JSON | nullable | ์ ๊ทผ ๊ถํ |
ํ๊ทธ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PK (๋ณตํฉ ํค) | ์ ๊ทํ๋ ํ๊ทธ ์๋ณ์ |
name | String | - | ํ์ ์ด๋ฆ |
user_id | String | PK (๋ณตํฉ ํค) | ํ๊ทธ ์์ ์ |
meta | JSON | nullable | ํ๊ทธ ๋ฉํ๋ฐ์ดํฐ |
ํ๊ทธ ํ
์ด๋ธ์ ๋ํ ์ฃผ์์ฌํญ:
- ๊ธฐ๋ณธ ํค๋ ๋ณตํฉ ํค (id, user_id) ์
๋๋ค.
๋๊ตฌ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ |
user_id | String | - | ๋๊ตฌ ์์ ์ |
name | Text | - | ๋๊ตฌ ์ด๋ฆ |
content | Text | - | ๋๊ตฌ ๋ด์ฉ/์ฝ๋ |
specs | JSON | - | ๋๊ตฌ ์ฌ์ |
meta | JSON | - | ๋๊ตฌ ๋ฉํ๋ฐ์ดํฐ |
valves | JSON | - | ๋๊ตฌ ์ ์ด ์ค์ |
access_control | JSON | nullable | ์ ๊ทผ ๊ถํ |
created_at | BigInteger | - | ์์ฑ ์๊ฐๆ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ์๊ฐ |
์ฌ์ฉ์ ํ
์ด๋ธโ
์ด ์ด๋ฆ | ๋ฐ์ดํฐ ์ ํ | ์ ์ฝ ์กฐ๊ฑด | ์ค๋ช
|
---|
id | String | PRIMARY KEY | ๊ณ ์ ์๋ณ์ |
name | String | - | ์ฌ์ฉ์์ ์ด๋ฆ |
email | String | - | ์ฌ์ฉ์์ ์ด๋ฉ์ผ |
role | String | - | ์ฌ์ฉ์์ ์ญํ |
profile_image_url | Text | - | ํ๋กํ ์ด๋ฏธ์ง ๊ฒฝ๋ก |
last_active_at | BigInteger | - | ๋ง์ง๋ง ํ๋ ์๊ฐ |
updated_at | BigInteger | - | ๋ง์ง๋ง ์
๋ฐ์ดํธ ์๊ฐ |
created_at | BigInteger | - | ์์ฑ ์๊ฐๆ |
api_key | String | UNIQUE, nullable | API ์ธ์ฆ ํค |
settings | JSON | nullable | ์ฌ์ฉ์ ์ ํธ ์ค์ |
info | JSON | nullable | ์ถ๊ฐ ์ฌ์ฉ์ ์ ๋ณด |
oauth_sub | Text | UNIQUE | OAuth ์ฃผ์ ์๋ณ์ |
์ํฐํฐ ๊ด๊ณ ๋ค์ด์ด๊ทธ๋จ
ํ
์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์๊ฐํํ๋ ค๋ฉด ์๋์ Mermaid๋ก ์์ฑ๋ ์ํฐํฐ ๊ด๊ณ ๋ค์ด์ด๊ทธ๋จ(ERD)์ ์ฐธ์กฐํ์ธ์.