¡Hola a todos! ¿Cómo están? ¡Bienvenidos nuevamente al curso de NativePHP! En esta clase, veremos uno de los componentes más importantes, la gestión de la base de datos y las migraciones en NativePHP.
En esta oportunidad crearemos una pequeña aplicación de escritorio para del registro y seguimiento de pacientes con todas las funcionalidades y controles que una aplicación requiere, al finalizar el curso habremos creado una aplicación sencilla pero funcional aplicando las funcionalidades más conocidas de NativePHP. Así conoceremos más este nuevo paquete de PHP que sin duda dará de qué hablar en un futuro.
¡Empecemos!
Base de datos en NativePHP
Actualmente NativePHP acepta solo la conexión con una base de datos en SQLite (aún se trabaja para que se pueda conectar con otros gestores de base de datos como MySQL o PostgreSQL). Al igual que Laravel utiliza las migraciones para crear la estructura de la base de datos de manera controlada y versionada.
Crear una base de datos
Si bien al instalar un nuevo proyecto de NativePHP viene por defecto el archivo de configuración .env esta aún no se utiliza para la conexión con la base de datos. Por defecto trae el archivo de base de datos “nativephp.sqlite” que nos servirá para crear las migraciones y generar las tablas.

Migraciones en NativePHP (Migrations)
Al igual que en las migraciones de Laravel. NativePHP crear las migraciones en el directorio “database/migrations”. Para crear las migraciones utilizaremos Artisan (interfaz de línea de comandos de Laravel). Primeramente, crearemos la migración para “Pacientes” ejecutando la siguiente línea de comandos:
php artisan make:migration create_pacientes_table

Este comando de Artisan creará un nuevo archivo de migración en el directorio “database/migrations”, NativePHP asigna automáticamente un nombre al archivo con un timestamp seguido del nombre que le fue asignado en nuestro caso “Pacientes” (con el fin de que las migraciones se ejecuten en el orden en que fueron creadas).
Ahora crearemos las columnas de nuestra tabla “Pacientes”, en nuestro ejemplo crearemos los campos: código, nombre, apellido, género, whatsapp, dirección y antecedentes médicos, cada campo con su tipo y característica.
$table->integer('codigo'); $table->string('nombre', 35); $table->string('apellido', 35); $table->enum('genero', ['Masculino', 'Femenino']); $table->string('whatsapp', 15)->nullable(); $table->string('direccion', 250)->nullable(); $table->string('antecedentes_medicos', 75)->nullable();

Realizaremos los mismos pasos esta vez para crear la migración de “Historiales médicos”, ejecutamos el siguiente comando:
php artisan make:migration create_historiales_table
Crearemos las columnas de nuestra tabla “Historiales”, con los campos: fecha atención, motivo consulta, tratamiento, detalle tratamiento y costo consulta, cada campo con su tipo y característica. También crearemos la referencia con la tabla “Pacientes” si realizamos la relación entre tablas notamos que es una relación uno a muchos (un paciente tiene varios consultas y una consulta se realiza a un solo paciente).
$table->date('fecha_atencion'); $table->string('motivo_consulta', 250); $table->string('tratamiento', 250); $table->text('detalle_tratamiento'); $table->decimal('costo_consulta', 10,2); $table->unsignedBigInteger('paciente_id')->nullable(); $table->foreign('paciente_id')->references('id')->on('pacientes')->onDelete('cascade');
Ejecutar las migraciones
Una vez creado las migraciones con sus respectivos campos, es hora de crear la base de datos ejecutando las migraciones con el siguiente comando de Artisan:
php artisan native:migrate

Artisan automáticamente ejecutará la migración y creará la tabla “Pacientes” y “Historiales” en la base de datos “nativephp.sqlite” con los campos correspondientes. Existen muchos más tipos de columnas que podemos aplicar a cada campo que vayamos creando (puedes visitar el sitio oficial de Laravel para ver todos los tipos de datos que podemos aplicar). Hoy vimos los tipos más básicos y comunes que podemos utilizar para crear nuestra base de datos.
Para poder verificar la base de datos creada podemos utilizar la herramienta https://sqliteonline.com, que es un sitio web que proporcionaba una plataforma en línea para cargar y ejecutar consultas con bases de datos SQLite.

Si tienes dudas o comentarios de esta clase, base de datos y migraciones en NativePHP escríbenos para aclarar tus dudas. hasta la próxima clase.
¡Te espero en la siguiente clase!
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.
Muy interezante, con un base de datos en mysql va ser genial
Que bien que te estás enganchando el curso de NativePHP, Seguramente, muy pronto tendrá soporte para varios motores de base de datos. Ya se viene prontito la siguiente clase.