Commit inicial - upload de todos os arquivos da pasta
This commit is contained in:
+15
-7
@@ -16,6 +16,14 @@ from typing import Any, Iterator
|
|||||||
from .config import get_settings
|
from .config import get_settings
|
||||||
|
|
||||||
|
|
||||||
|
_CATEGORIA_SCHEMA = """
|
||||||
|
CREATE TABLE IF NOT EXISTS categoria (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
categoria TEXT NOT NULL,
|
||||||
|
palavra_chave TEXT NOT NULL
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
|
||||||
SCHEMA = """
|
SCHEMA = """
|
||||||
CREATE TABLE IF NOT EXISTS users (
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
@@ -67,12 +75,7 @@ CREATE TABLE IF NOT EXISTS detected_documents (
|
|||||||
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
|
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS categoria (
|
__CATEGORIA_PLACEHOLDER__
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
||||||
categoria TEXT NOT NULL,
|
|
||||||
palavra_chave TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS fiscal_documents (
|
CREATE TABLE IF NOT EXISTS fiscal_documents (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
detected_document_id INTEGER REFERENCES detected_documents(id) ON DELETE SET NULL,
|
detected_document_id INTEGER REFERENCES detected_documents(id) ON DELETE SET NULL,
|
||||||
@@ -90,7 +93,7 @@ CREATE TABLE IF NOT EXISTS fiscal_documents (
|
|||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_fiscal_competencia ON fiscal_documents(ano, mes);
|
CREATE INDEX IF NOT EXISTS idx_fiscal_competencia ON fiscal_documents(ano, mes);
|
||||||
CREATE INDEX IF NOT EXISTS idx_detected_batch ON detected_documents(batch_id, status);
|
CREATE INDEX IF NOT EXISTS idx_detected_batch ON detected_documents(batch_id, status);
|
||||||
"""
|
""".replace("__CATEGORIA_PLACEHOLDER__", _CATEGORIA_SCHEMA)
|
||||||
|
|
||||||
_RESERVED_CATEGORIA_SEED = (
|
_RESERVED_CATEGORIA_SEED = (
|
||||||
"INSERT OR IGNORE INTO categoria (id, categoria, palavra_chave) VALUES (1, 'Não Encontrado', '')"
|
"INSERT OR IGNORE INTO categoria (id, categoria, palavra_chave) VALUES (1, 'Não Encontrado', '')"
|
||||||
@@ -233,6 +236,11 @@ def _migrate_competencia(conn: sqlite3.Connection) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def init_db(conn: sqlite3.Connection) -> None:
|
def init_db(conn: sqlite3.Connection) -> None:
|
||||||
|
# `categoria` precisa existir antes da migração: `_rebuild_fiscal_documents`
|
||||||
|
# recria `fiscal_documents` com `categoria_id REFERENCES categoria(id)`, e com
|
||||||
|
# `PRAGMA foreign_keys = ON` o INSERT falha com "no such table" se a tabela
|
||||||
|
# referenciada ainda não existir num banco pré-existente sem ela.
|
||||||
|
conn.execute(_CATEGORIA_SCHEMA)
|
||||||
_migrate_competencia(conn)
|
_migrate_competencia(conn)
|
||||||
conn.executescript(SCHEMA)
|
conn.executescript(SCHEMA)
|
||||||
columns = {row["name"] for row in conn.execute("PRAGMA table_info(fiscal_documents)")}
|
columns = {row["name"] for row in conn.execute("PRAGMA table_info(fiscal_documents)")}
|
||||||
|
|||||||
Reference in New Issue
Block a user