1. Entorno reproducible
Objetivos
- separar ejecución, base de datos y código fuente
- inicializar una base de entrenamiento desechable
- repetir los comandos sin depender de configuración oculta del equipo
Modelo mental
Este concepto debe entenderse como parte de un sistema transaccional: la interfaz ayuda al usuario, el servidor conserva las reglas y la base persiste el resultado. El entorno de desarrollo forma parte del producto. Si otra persona no puede reproducirlo, una prueba exitosa en una sola computadora constituye una evidencia débil.
Práctica guiada
- Cree un entorno virtual o contenedor dedicado.
- Instale servidor y módulos de la misma serie de Tryton.
- Use SQLite para el primer ejercicio y PostgreSQL antes de validar un comportamiento de producción.
- Cree una base, active el módulo y conserve los comandos exactos en el README del proyecto.
Ejemplo mínimo
python -m venv .venv
. .venv/bin/activate
python -m pip install "trytond~=7.0.0" "trytond_company~=7.0.0"
export TRYTOND_DATABASE_URI=sqlite://
trytond-admin -d training --all
trytond -d training
Cómo leer el ejemplo
Sustituya VERSION por la serie seleccionada. El rango compatible mantiene el paquete dentro de esa serie. Para PostgreSQL configure TRYTOND_DATABASE_URI expresamente y nunca confirme credenciales en Git.
Ejercicio
Recree la base desde un directorio vacío, registre la URL del servidor y demuestre que otro desarrollador puede repetir el proceso.
Realice el ejercicio primero con un caso mínimo, después agregue un caso inválido y convierta ambos en pruebas repetibles.
Resultado verificable
El servidor inicia, la base puede seleccionarse y ningún comando depende de una instalación global de Tryton.
Errores frecuentes
- mezclar series del servidor y los módulos
- usar datos de producción para practicar
- suponer que SQLite demuestra las migraciones en PostgreSQL
- guardar secretos de la base en Git
Criterio para avanzar
- Puedo explicar la diferencia entre los conceptos sin mirar el código.
- El caso válido y el inválido tienen pruebas.
- Probé con un usuario sin privilegios administrativos.
- Sé cómo actualizar y cómo recuperar la base de entrenamiento.
Versión y referencias
La serie 7.0 requiere como mínimo Python 3.8 según los metadatos oficiales. Esta rama oficial todavía conserva metadatos históricos en setup.py; mantenga compatibilidad con la serie, pero prepare sus paquetes personalizados para la construcción estándar mediante python -m build. No confunda ese mínimo histórico con la versión de Python que haya certificado su organización.
Esta edición fija ejemplos y dependencias en la serie 7.0. Consulte el tutorial oficial 7.0, la API del servidor y el código de esa rama antes de trasladar el patrón a producción.