Download the PHP package jorgemddev/kumbiaphp-migrations without Composer
On this page you can find all versions of the php package jorgemddev/kumbiaphp-migrations. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jorgemddev/kumbiaphp-migrations
More information about jorgemddev/kumbiaphp-migrations
Files in jorgemddev/kumbiaphp-migrations
Package kumbiaphp-migrations
Short Description Sistema de migraciones de base de datos para KumbiaPHP, inspirado en Laravel Migrations.
License MIT
Homepage https://github.com/jorgemddev/kumbiaphp-migrations
Informations about the package kumbiaphp-migrations
KumbiaPHP Migrations
Propósito del Proyecto
KumbiaPHP Migrations nace de la necesidad de proporcionar un sistema robusto de versionado y gestión de cambios en esquemas de base de datos para KumbiaPHP, un framework que actualmente carece de esta funcionalidad.
El framework KumbiaPHP es poderoso pero no contaba con un sistema nativo de migraciones de base de datos. Este proyecto fue desarrollado como solución integral, inspirado en Laravel Migrations — uno de los sistemas más maduros y confiables de la comunidad PHP — adaptado específicamente para las características y estructura de KumbiaPHP.
Nota sobre el desarrollo: Este proyecto fue desarrollado con la asistencia de IA, asegurando código de calidad, moderno y mantenible.
¿Qué es?
Un sistema de migraciones que permite:
- Versionar cambios en el esquema de tu base de datos
- Reproducir la estructura de la BD desde cero en cualquier ambiente
- Revertir cambios de forma segura
- Colaborar en equipo sin conflictos de esquema
- Automatizar despliegues y sincronización de BD
Requisitos
- PHP 7.0 o superior
- Extensión PDO habilitada
- KumbiaPHP (cualquier versión con
app/config/databases.php) - MySQL/MariaDB, PostgreSQL o SQLite
Instalación
Vía Composer (recomendado)
El plugin copia automáticamente los binarios a app/bin/ al instalar. Luego crea la tabla de control:
Manual
Copia la carpeta src/ dentro de app/libs/ de tu proyecto KumbiaPHP:
Luego crea la tabla de control en tu base de datos:
Configuración
El sistema lee la configuración desde app/config/databases.php. Debe retornar un array con las conexiones:
El entorno se detecta automáticamente: si la constante PRODUCTION está definida y es true, se usa la conexión production; de lo contrario, development.
Comandos
Todos los comandos se ejecutan desde la raíz del proyecto:
Crear migraciones
Esto genera un archivo en app/migrations/ con el formato YYYY_MM_DD_HHMMSS_nombre.php.
Escribir migraciones
Cada migración es una clase PHP con dos métodos: up() para aplicar el cambio y down() para revertirlo.
Crear una tabla
Modificar una tabla existente
Modificar columna existente
Tabla con clave foránea
Tipos de columnas disponibles
| Método | Tipo SQL |
|---|---|
bigIncrements('id') |
BIGINT UNSIGNED AUTO_INCREMENT PK |
increments('id') |
INT UNSIGNED AUTO_INCREMENT PK |
string('col', 255) |
VARCHAR |
char('col', 10) |
CHAR |
text('col') |
TEXT |
mediumText('col') |
MEDIUMTEXT |
longText('col') |
LONGTEXT |
integer('col') |
INT |
tinyInteger('col') |
TINYINT |
smallInteger('col') |
SMALLINT |
bigInteger('col') |
BIGINT |
unsignedInteger('col') |
INT UNSIGNED |
unsignedBigInteger('col') |
BIGINT UNSIGNED |
float('col', 8, 2) |
FLOAT |
double('col') |
DOUBLE |
decimal('col', 10, 2) |
DECIMAL |
boolean('col') |
TINYINT(1) |
enum('col', ['a','b']) |
ENUM |
json('col') |
JSON |
date('col') |
DATE |
dateTime('col') |
DATETIME |
timestamp('col') |
TIMESTAMP |
timestamps() |
created_at + updated_at |
softDeletes() |
deleted_at nullable |
binary('col') |
BLOB |
uuid('col') |
CHAR(36) |
ipAddress('col') |
VARCHAR(45) |
macAddress('col') |
VARCHAR(17) |
Modificadores de columna
Se encadenan sobre cualquier definición de columna:
| Modificador | Descripción |
|---|---|
->nullable() |
Permite NULL |
->default($valor) |
Valor por defecto |
->unsigned() |
Sin signo (MySQL) |
->unique() |
Índice único |
->index() |
Índice normal |
->after('columna') |
Posición (MySQL) |
->first() |
Primera posición (MySQL) |
->comment('texto') |
Comentario (MySQL) |
->useCurrent() |
DEFAULT CURRENT_TIMESTAMP |
->change() |
Modificar columna existente |
Claves foráneas
Índices
Operaciones de esquema
Introspección de base de datos
Permite inspeccionar la estructura actual de la base de datos. Compatible con MySQL, PostgreSQL y SQLite.
Listar tablas
Columnas de una tabla
Cada elemento retorna:
| Campo | Descripción |
|---|---|
name |
Nombre de la columna |
type |
Tipo de dato (varchar(255), int, etc.) |
nullable |
true si acepta NULL |
default |
Valor por defecto o null |
key |
PRI, UNI, MUL (MySQL) / PRIMARY (otros) / null |
extra |
auto_increment, etc. (MySQL) |
comment |
Comentario de la columna (MySQL) |
Índices de una tabla
Cada elemento retorna:
| Campo | Descripción |
|---|---|
name |
Nombre del índice |
columns |
Array de columnas que lo componen |
unique |
true si es único |
primary |
true si es la clave primaria |
Claves foráneas de una tabla
Cada elemento retorna:
| Campo | Descripción |
|---|---|
name |
Nombre de la constraint |
columns |
Columnas locales |
on_table |
Tabla referenciada |
references |
Columnas referenciadas |
on_delete |
Acción ON DELETE (CASCADE, RESTRICT, SET NULL, NO ACTION) |
on_update |
Acción ON UPDATE |
Uso con conexión específica
Todos los métodos de introspección respetan la conexión activa:
Seeders
Los seeders poblan la base de datos con datos iniciales o de prueba. Se ubican en app/database/seeds/.
Crear un seeder
DatabaseSeeder principal
Ejecutar seeders
Métodos disponibles en Seeder
Flujo de trabajo recomendado
Despliegue en producción
Advertencia: No ejecutes
--resetni--refreshen producción. Solomigratepara aplicar los cambios pendientes.
Estructura de archivos
Licencia
Este proyecto está bajo licencia MIT. Siéntete libre de usarlo, modificarlo y distribuirlo.
Desarrollado con IA para la comunidad de KumbiaPHP 🚀
All versions of kumbiaphp-migrations with dependencies
ext-pdo Version *
composer-plugin-api Version ^2.0