html 💠 Visão geral do banco de dados SQLite | Nullcore
Pule para o conteúdo principal
aviso

Este tutorial é uma contribuição da comunidade e não é suportado pela equipe Nullcore. Serve apenas como uma demonstração sobre como personalizar o Nullcore para o seu caso de uso específico. Quer contribuir? Confira o tutorial contribuinte.

[!AVISO]
Esta documentação foi criada com base na versão atual (0.5.11) e está sendo atualizada constantemente.

Banco de dados SQLite interno de Webui-Webui

Para o Open-Webui, o banco de dados SQLite serve como backbone para gerenciamento de usuários, histórico de bate-papo, armazenamento de arquivos e várias outras funcionalidades principais. Compreender essa estrutura é essencial para quem deseja contribuir ou manter o projeto de maneira eficaz.

Localização interna do sqlite

Você pode encontrar o banco de dados SQLite emrootdatawebui.db

📁 Raiz (/)
├── 📁 Dados
│ ├── 📁 cache
│ ├── 📁 uploads
│ ├── 📁 Vector_db
│ └── 📄 webui.db
├── 📄 Dev.sh
├── 📁 Open_webui
├── 📄 requisitos.txt
├── 📄 start.sh
└── 📄 start_windows.bat

Copie o banco de dados localmente

Se você deseja copiar o banco de dados Sqlite Open-Webui em execução no contêiner na sua máquina local, você pode usar:

Docker CP Open-Webui: /pp/backend/data/webui.db ./webui.db

Como alternativa, você pode acessar o banco de dados dentro do contêiner usando:

Docker Exec -It Open -Webui /Bin /Sh

Visão geral da tabela

Aqui está uma lista completa de tabelas no banco de dados SQLITE do Open-Webui. As tabelas são listadas em ordem alfabética e numeradas por conveniência.

Não.Nome da tabelaDescrição
01AuthArmazena credenciais de autenticação do usuário e informações de login
02canalGerencia canais de bate -papo e suas configurações
03canal_memberRastreia a associação e as permissões do usuário dentro dos canais
04bater papoLojas sessões de bate -papo e seus metadados
05chatidtagMapas relacionamentos entre bate -papos e suas tags associadas
06ConfigMantém as configurações de configuração em todo o sistema
07documentoArmazena documentos e seus metadados para gerenciamento de conhecimento
08opiniãoCaptura feedback e classificações do usuário
09arquivoGerencia arquivos enviados e seus metadados
10pastaOrganiza arquivos e conteúdo em estruturas hierárquicas
11funçãoArmazena funções personalizadas e suas configurações
12grupoGerencia grupos de usuários e suas permissões
13conhecimentoArmazena entradas da base de conhecimento e informações relacionadas
14memóriaMantém o histórico de bate -papo e a memória de contexto
15mensagemArmazena mensagens de bate -papo individuais e seu conteúdo
16message_reationRegistra reações do usuário (emojis/respostas) a mensagens
17migrate_historyRastreia a versão do esquema do banco de dados e os registros de migração
18modeloGerencia configurações e configurações de modelo de IA
19incitarModelos e configurações de armazenamento para solicitações de IA
20marcaçãoGerencia tags/etiquetas para categorização de conteúdo
21ferramentaArmazenamentos configurações para ferramentas e integrações do sistema
22usuárioMantém perfis de usuário e informações da conta

Nota: Existem duas tabelas adicionais no banco de dados SQLite do Webui, que não estão relacionados à funcionalidade principal do Webui, que foram excluídos:

  • Tabela de versão Alembic
  • Migrar a tabela de história

Agora que temos todas as tabelas, vamos entender a estrutura de cada tabela.

Tabela de autenticação

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo
e-mailCordaEmail do usuário
senhaTextoSenha com hash
ativoBooleanoStatus da conta

Coisas a saber sobre a tabela de autenticação:

  • Usa uuid para chave primária
  • Relacionamento individual comusersTabela (ID compartilhada)

Tabela de canal

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primáriaIdentificador exclusivo (UUID)
ID do usuárioTextoProprietário/criador do canal
tipoTextoNulívelTipo de canal
nomeTextoNome do canal
descriçãoTextoNulívelDescrição do canal
dadosJSONNulívelArmazenamento de dados flexíveis
MetaJSONNulívelMetadados do canal
access_controlJSONNulívelConfigurações de permissão
criado_atBigintegerTimestamp de criação (nanossegundos)
atualizado_atBigintegerÚltima atualização Timestamp (nanossegundos)

Coisas a saber sobre a tabela de autenticação:

  • Usa uuid para chave primária
  • Nomes de canais insensíveis a maiúsculas (minúsculas armazenadas)

Tabela de membros do canal

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTEXTONão nuloIdentificador exclusivo para a associação ao canal
canal_idTEXTONão nuloReferência ao canal
ID do usuárioTEXTONão nuloReferência ao usuário
criado_atBigintTimestamp quando a associação foi criada

Tabela de bate -papo

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo (UUID)
ID do usuárioCordaProprietário do bate -papo
títuloTextoTítulo de bate -papo
bater papoJSONConteúdo e história do bate -papo
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp
share_idTextoÚnico, anulávelCompartilhando Identificador
arquivadoBooleanopadrão = falseStatus do arquivo
presoBooleanopadrão = false, anuladoStatus do pino
MetaJSONserver_default = "Metadados, incluindo tags
pasro_idTextoNulívelID da pasta pai

Tabela de etiqueta de identificação de bate -papo

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaVarchar (255)Não nuloIdentificador exclusivo
tag_nameVarchar (255)Não nuloNome da tag
chat_idVarchar (255)Não nuloReferência ao bate -papo
ID do usuárioVarchar (255)Não nuloReferência ao usuário
TimestampInteiroNão nuloTimestamp de criação

Config

Nome da colunaTipo de dadosRestriçõesPadrãoDescrição
eu iaInteiroNão nuloIdentificador -chave primário
dadosJSONNão nuloDados de configuração
versãoInteiroNão nuloNúmero da versão de configuração
criado_atDateTimeNão nuloCurrent_timestampTimestamp de criação
atualizado_atDateTimeCurrent_timestampÚltima atualização Timestamp

Tabela de feedback

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primáriaIdentificador exclusivo (UUID)
ID do usuárioTextoUsuário que forneceu feedback
versãoBigintegerpadrão = 0Número da versão de feedback
tipoTextoTipo de feedback
dadosJSONNulívelDados de feedback, incluindo classificações
MetaJSONNulívelMetadados (arena, chat_id, etc)
instantâneoJSONNulívelInstantâneo de bate -papo associado
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Tabela de arquivos

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo
ID do usuárioCordaProprietário do arquivo
HashTextoNulívelArquivo Hash/ChecksUm
nome do arquivoTextoNome do arquivo
caminhoTextoNulívelCaminho do sistema de arquivos
dadosJSONNulívelDados relacionados a arquivos
MetaJSONNulívelMetadados do arquivo
access_controlJSONNulívelConfigurações de permissão
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

OmetaEstrutura esperada do campo:

{
"nome"corda, Assim, # Nome opcional de exibição
"Content_type"corda, Assim, # Tipo MIME
"tamanho"Inteiro, Assim, # Tamanho do arquivo em bytes
# Metadados adicionais suportados via configdict (extra = "permitir")

Tabela de pastas

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primáriaIdentificador exclusivo (UUID)
parent_idTextoNulívelID da pasta pai para hierarquia
ID do usuárioTextoProprietário da pasta
nomeTextoNome da pasta
UnidJSONNulívelConteúdo da pasta
MetaJSONNulívelMetadados da pasta
is_expandBooleanopadrão = falseEstado de expansão da interface do usuário
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Coisas para saber sobre a tabela de pastas:

  • Pastas podem ser aninhadas (referência parent_id)
  • Pastas de raiz têm nulo pai_id
  • Os nomes das pastas devem ser únicos dentro do mesmo pai

Tabela de funções

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo
ID do usuárioCordaProprietário da função
nomeTextoNome da função
tipoTextoTipo de função
contenteTextoFunção Conteúdo/Código
MetaJSONMetadados da função
válvulasJSONConfigurações de controle da função
is_activeBooleanoFunção status ativo
IS_GLOBALBooleanoSinalizador de disponibilidade global
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Coisas para saber sobre a tabela de pastas:

  • typesó pode ser: ["filtro", "ação"]

Tabela de grupo

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primária, únicaIdentificador exclusivo (UUID)
ID do usuárioTextoProprietário/criador do grupo
nomeTextoNome do grupo
descriçãoTextoDescrição do grupo
dadosJSONNulívelDados de grupo adicionais
MetaJSONNulívelMetadados do grupo
permissõesJSONNulívelConfiguração de permissão
user_idsJSONNulívelLista de IDs de usuário de membros
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Tabela de conhecimento

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primária, únicaIdentificador exclusivo (UUID)
ID do usuárioTextoProprietário da base de conhecimento
nomeTextoNome da base do conhecimento
descriçãoTextoDescrição da base de conhecimento
dadosJSONNulívelConteúdo da base de conhecimento
MetaJSONNulívelMetadados adicionais
access_controlJSONNulívelRegras de controle de acesso
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Oaccess_controlCampos Estrutura esperada:

{
"ler" {
"Group_ids" [["group_id1", Assim, "group_id2", Assim,
"User_ids" [["user_id1", Assim, "user_id2"
, Assim,
"escrever" {
"Group_ids" [["group_id1", Assim, "group_id2", Assim,
"User_ids" [["user_id1", Assim, "user_id2"


Tabela de memória

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo (UUID)
ID do usuárioCordaProprietário da memória
contenteTextoConteúdo de memória
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Tabela de mensagens

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primáriaIdentificador exclusivo (UUID)
ID do usuárioTextoAutor de mensagens
canal_idTextoNulívelCanal associado
parent_idTextoNulívelMensagem pai para tópicos
contenteTextoConteúdo de mensagem
dadosJSONNulívelDados de mensagens adicionais
MetaJSONNulívelMetadados da mensagem
criado_atBigintegerTimestamp de criação (nanossegundos)
atualizado_atBigintegerÚltima atualização Timestamp (nanossegundos)

Tabela de reação da mensagem

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primáriaIdentificador exclusivo (UUID)
ID do usuárioTextoUsuário que reagiu
message_idTextoMensagem associada
nomeTextoNome da reação/emoji
criado_atBigintegerTimestamp de reação

Tabela modelo

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaTextoChave primáriaIdentificador de modelo
ID do usuárioTextoProprietário de modelo
base_model_idTextoNulívelReferência do modelo pai
nomeTextoNome de exibição
paramsJSONParâmetros do modelo
MetaJSONModelo Metadados
access_controlJSONNulívelPermissões de acesso
is_activeBooleanopadrão = trueStatus ativo
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Tabela imediata

Nome da colunaTipo de dadosRestriçõesDescrição
comandoCordaChave primáriaIdentificador de comando exclusivo
ID do usuárioCordaProprietário rápido
títuloTextoTítulo imediato
contenteTextoConteúdo/modelo imediato
TimestampBigintegerÚltima atualização Timestamp
access_controlJSONNulívelPermissões de acesso

Tabela de tags

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaPK (composto)Identificador de tag normalizado
nomeCordaNome de exibição
ID do usuárioCordaPK (composto)Proprietário de etiqueta
MetaJSONNulívelTag metadados

Coisas para saber sobre a tabela de tags:

  • A chave primária é composta (id, user_id)

Tabela de ferramentas

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo
ID do usuárioCordaProprietário da ferramenta
nomeTextoNome da ferramenta
contenteTextoConteúdo/código da ferramenta
especificaçõesJSONEspecificações da ferramenta
MetaJSONMetadados da ferramenta
válvulasJSONConfigurações de controle de ferramentas
access_controlJSONNulívelPermissões de acesso
criado_atBigintegerTimestamp de criação
atualizado_atBigintegerÚltima atualização Timestamp

Tabela de usuários

Nome da colunaTipo de dadosRestriçõesDescrição
eu iaCordaChave primáriaIdentificador exclusivo
nomeCordaNome do usuário
e-mailCordaEmail do usuário
papelCordaFunção do usuário
perfil_image_urlTextoCaminho da imagem do perfil
last_active_atBigintegerÚltima atividade registro de data e hora
atualizado_atBigintegerÚltima atualização Timestamp
criado_atBigintegerTimestamp de criação
api_keyCordaÚnico, anulávelChave de autenticação da API
configuraçõesJSONNulívelPreferências do usuário
informaçõesJSONNulívelInformações adicionais do usuário
OAuth_subTextoEXCLUSIVOOAuth Identificador de sujeitos

Diagrama de relacionamento de entidade

Para ajudar a visualizar a relação entre as tabelas, consulte o diagrama de relacionamento com entidade abaixo (ERD) gerado com sereia.