Base principal
PostgreSQL guarda permanentemente todo lo que importa: catálogo, inventario, compras, ventas y los comprobantes. Es la única "verdad" del sistema; todo lo demás (la memoria rápida, el buscador) es caché o se deriva de aquí. En realidad son 3 bases separadas en el mismo servidor — esta página describe la principal (leon_principal); las otras dos, en Las tablas del negocio.
Una base de datos relacional PostgreSQL. Cada lectura y escritura del motor pasa por aquí. Guarda el catálogo (producto, variante), el inventario, las compras de importación, las ventas y —sobre todo— los comprobantes electrónicos, que son legales y no pueden vivir en ningún sitio temporal.
Las tablas reales, en español y con el dominio del negocio. El esquema completo está en el modelo oficial; aquí va el mapa de alto nivel:
Una columna stock escrita a mano se desincroniza en cuanto dos operaciones la tocan a la vez. En su lugar, cada entrada (compra) y cada salida (venta) se anota como una fila en movimiento_inventario, y el stock disponible es la suma. Así siempre cuadra y queda auditable: se puede reconstruir de dónde salió cada unidad.
Nada de esto hace falta para el piloto (30–50 SKU). Se difiere hasta que el volumen lo justifique:
Por qué: PostgreSQL es robusto y maneja bien lo relacional. El ORM de Django lee y escribe sin SQL a mano en el día a día, pero el esquema no lo versionan migraciones de Django: todos los modelos de negocio son managed=False y el esquema real vive en archivos .sql versionados en un repositorio aparte, aplicados directamente con psql. Cambiar una tabla es editar ese SQL y aplicarlo a mano, no makemigrations. La extensión pg_trgm, dentro de la misma base, cubre la búsqueda —no hace falta un buscador aparte.
La base de datos es el bien más valioso del negocio: respaldo y monitoreo son innegociables. Tres reglas sostienen el modelo —el SKU vive en la variante, el stock se calcula sumando movimientos, y los comprobantes se guardan permanentemente aquí. El detalle campo por campo está en el modelo oficial.