MediPro is built on Laravel and supports SQLite, MySQL, and PostgreSQL. For local development, SQLite is the default and requires no additional server setup. The database is used primarily for Laravel’s built-in infrastructure — authentication, cache, sessions, and queued jobs — rather than for storing window and door configuration data.
Window and door configurations in MediPro are stored in the PHP session, not in the database. The database tables created by migrations support Laravel’s core features: user authentication, cache storage, and the job queue. See Session data below for the full list of session keys used by the configurator.
# Run all pending migrationsphp artisan migrate# Drop all tables and re-run every migration from scratchphp artisan migrate:fresh# Show the status of each migration (run / pending)php artisan migrate:status
php artisan migrate:fresh destroys all data in the database. Never run this against a production database.
Because MediPro uses session-based state for all configurator data, no additional migrations are needed for window or door records. All configuration state is serialised into the payload column of the sessions table (or into the session file, depending on SESSION_DRIVER).The following session keys are used by the application:
Session key
Type
Description
sistemaSeleccionado
string
The selected window system type (e.g., sliding, casement)
ventanas
array
Full array of all window configuration objects for the current batch
datos_lote
array
Batch-level metadata used when generating the print view
PuertaSeleccionado
string
The selected door type
puertas
array
Door configuration data for the current batch
This design means that:
No application-specific schema changes are needed when updating MediPro.
Configurations are user-scoped and ephemeral by default (they last for the session lifetime defined by SESSION_LIFETIME).
Clearing or expiring a session resets the configurator state entirely.