Migración

El ORM PIPE permite la gestión de DDL (Lenguaje de Definición de Datos) por medio de migraciones.

#1 Creación de tabla.

#2 Borrado de tabla.

#3 Creación de índice.

#4 Creación de índice único.

#5 Borrado de índice.

#6 Borrado de restricción.

#7 Creación de llave primaria.

#8 Borrado de llave primaria.

#9 Creación de llave foránea.

#10 Borrado de llave foránea.

#11 Creación de campo.

#12 Cambio de campo.

#13 Borrado de campo.

A continuación, se presenta un listado de los 63 métodos disponibles en la clase PIPE\Migracion\Migracion para la gestión de DDL en los motores de base de datos MySQL, PostgreSQL, SQLite y SQL Server.

Método Tipo de dato MySQL PostgreSQL SQLite SQL Server
- Soporte
borrarCampo - ✅ ✅ ✅ ✅
borrarIndice - ✅ ✅ ✅ ✅
borrarLlaveForanea - ✅ ✅ ✅ ✅
borrarLlavePrimaria - ✅ ✅ ✅ ✅
borrarRestriccion - ✅ ✅ ✅ ✅
borrarTabla - ✅ ✅ ✅ ✅
cambiarCampo - ✅ ✅ ✅ ✅
crearCampo - ✅ ✅ ✅ ✅
crearIndice - ✅ ✅ ✅ ✅
crearIndiceUnico - ✅ ✅ ✅ ✅
crearLlaveForanea - ✅ ✅ ✅ ✅
crearLlavePrimaria - ✅ ✅ ✅ ✅
crearTabla - ✅ ✅ ✅ ✅
espacioTabla - ❌ ✅ ❌ ❌
llaveForanea - ✅ ✅ ✅ ✅
llavePrimaria - ✅ ✅ ✅ ✅
motor - ✅ ❌ ❌ ❌
personalizado - ✅ ✅ ✅ ✅
restriccion - ✅ ✅ ✅ ✅
tabla - ✅ ✅ ✅ ✅
Enteros Soporte
enteroMuyPequeno TYNYINT ✅ ❌ ❌ ✅
enteroPequeno SMALLINT ✅ ✅ ❌ ✅
enteroMediano MEDIUMINT ✅ ❌ ❌ ❌
entero INT / INTEGER ✅ ✅ ✅ ✅
enteroGrande BIGINT ✅ ✅ ❌ ✅
serialPequeno SMALLSERIAL ❌ ✅ ❌ ❌
serial SERIAL ❌ ✅ ❌ ❌
serialGrande BIGSERIAL ❌ ✅ ❌ ❌
Decimales Soporte
decimal DECIMAL(p,s) ✅ ✅ ✅ ✅
numerico NUMERIC(p,s) ✅ ✅ ✅ ✅
flotante FLOAT ✅ ✅ ✅ ✅
doble DOUBLE ✅ ✅ ✅ ✅
doblePrecision DOUBLE PRECISION ✅ ✅ ❌ ❌
real REAL ✅ ✅ ✅ ✅
monetario MONEY ❌ ❌ ❌ ✅
monetarioPequeno SMALLMONEY ❌ ❌ ❌ ✅
Cadenas de texto Soporte
caracter CHAR(n) ✅ ✅ ✅ ✅
cadena VARCHAR(n) ✅ ✅ ✅ ✅
nCaracter NCHAR(n) ❌ ❌ ❌ ✅
nCadena NVARCHAR(n) ❌ ❌ ❌ ✅
textoMuyPequeno TINYTEXT ✅ ❌ ❌ ❌
textoMediano MEDIUMTEXT ✅ ❌ ❌ ❌
texto TEXT ✅ ✅ ✅ ✅
textoLargo LONGTEXT ✅ ❌ ❌ ❌
Marcas de tiempo Soporte
fecha DATE ✅ ✅ ✅ ✅
fechaHora DATETIME ✅ ❌ ✅ ✅
fechaHora2 DATETIME2 ❌ ❌ ❌ ✅
marcaTiempo TIMESTAMP ✅ ✅ ✅ ✅
hora TIME ✅ ✅ ✅ ✅
anio YEAR ✅ ❌ ❌ ❌
Lógicos Soporte
booleano BOOLEAN ✅ ✅ ✅ ✅
digitoBinario BIT ❌ ❌ ❌ ✅
Binarios Soporte
binario BINARY(n) ✅ ✅ ❌ ✅
binarioVariable VARBINARY(n) ✅ ✅ ❌ ✅
binarioGrande BLOB ✅ ✅ ✅ ✅
binarioMatriz BYTEA ❌ ✅ ❌ ❌
Geométricos Soporte
coordenada POINT ✅ ✅ ❌ ❌
coordenadaLinea LINESTRING ✅ ✅ ❌ ❌
poligono POLYGON ✅ ✅ ❌ ❌
Otros Soporte
enumerado ENUM(n...) ✅ ✅ ❌ ✅
conjunto SET(n...) ✅ ❌ ❌ ❌
json JSON ✅ ✅ ❌ ✅
jsonb JSONB ❌ ✅ ❌ ❌

A continuación, se presenta un listado de los 10 métodos disponibles en la clase PIPE\Migracion\Atributo para la gestión de DDL en los motores de base de datos MySQL, PostgreSQL, SQLite y SQL Server.

Método Atributo MySQL PostgreSQL SQLite SQL Server
- Soporte
autoincrementable AUTO_INCREMENT / GENERATED BY DEFAULT AS IDENTITY / AUTOINCREMENT / IDENTITY ✅ ✅ ✅ ✅
chequeo CHECK ✅ ✅ ✅ ✅
cotejamiento COLLATE ✅ ✅ ✅ ✅
identidad IDENTITY ❌ ❌ ❌ ✅
llavePrimaria PRIMARY KEY ✅ ✅ ✅ ✅
noNulo NOT NULL ✅ ✅ ✅ ✅
nulo NULL ✅ ✅ ✅ ✅
predeterminado DEFAULT ✅ ✅ ✅ ✅
sinSigno UNSIGNED ✅ ❌ ❌ ❌
unico UNIQUE ✅ ✅ ✅ ✅

A continuación, se presenta un listado de las 48 constantes disponibles en la clase PIPE\Migracion\Atributo para la gestión de DDL en los motores de base de datos MySQL, PostgreSQL, SQLite y SQL Server.

Constante Tipo de dato MySQL PostgreSQL SQLite SQL Server
Enteros Soporte
Atributo::ENTERO_MUY_PEQUENO TYNYINT ✅ ❌ ❌ ✅
Atributo::ENTERO_PEQUENO SMALLINT ✅ ✅ ❌ ✅
Atributo::ENTERO_MEDIANO MEDIUMINT ✅ ❌ ❌ ❌
Atributo::ENTERO INT / INTEGER ✅ ✅ ✅ ✅
Atributo::ENTERO_GRANDE BIGINT ✅ ✅ ❌ ✅
Atributo::SERIAL_PEQUENO SMALLSERIAL ❌ ✅ ❌ ❌
Atributo::SERIAL SERIAL ❌ ✅ ❌ ❌
Atributo::SERIAL_GRANDE BIGSERIAL ❌ ✅ ❌ ❌
Decimales Soporte
Atributo::DECIMAL DECIMAL(p,s) ✅ ✅ ✅ ✅
Atributo::NUMERICO NUMERIC(p,s) ✅ ✅ ✅ ✅
Atributo::FLOTANTE FLOAT ✅ ✅ ✅ ✅
Atributo::DOBLE DOUBLE ✅ ✅ ✅ ✅
Atributo::DOBLE_PRECISION DOUBLE PRECISION ✅ ✅ ❌ ❌
Atributo::REAL REAL ✅ ✅ ✅ ✅
Atributo::MONETARIO MONEY ❌ ❌ ❌ ✅
Atributo::MONETARIO_PEQUENO SMALLMONEY ❌ ❌ ❌ ✅
Cadenas de texto Soporte
Atributo::CARACTER CHAR(n) ✅ ✅ ✅ ✅
Atributo::CADENA VARCHAR(n) ✅ ✅ ✅ ✅
Atributo::N_CARACTER NCHAR(n) ❌ ❌ ❌ ✅
Atributo::N_CADENA NVARCHAR(n) ❌ ❌ ❌ ✅
Atributo::TEXTO_MUY_PEQUENO TINYTEXT ✅ ❌ ❌ ❌
Atributo::TEXTO_MEDIANO MEDIUMTEXT ✅ ❌ ❌ ❌
Atributo::TEXTO TEXT ✅ ✅ ✅ ✅
Atributo::TEXTO_LARGO LONGTEXT ✅ ❌ ❌ ❌
Marcas de tiempo Soporte
Atributo::FECHA DATE ✅ ✅ ✅ ✅
Atributo::FECHA_HORA DATETIME ✅ ❌ ✅ ✅
Atributo::FECHA_HORA_2 DATETIME2 ❌ ❌ ❌ ✅
Atributo::MARCA_TIEMPO TIMESTAMP ✅ ✅ ✅ ✅
Atributo::HORA TIME ✅ ✅ ✅ ✅
Atributo::ANIO YEAR ✅ ❌ ❌ ❌
Lógicos Soporte
Atributo::BOOLEANO BOOLEAN ✅ ✅ ✅ ✅
Atributo::DIGITO_BINARIO BIT ❌ ❌ ❌ ✅
Binarios Soporte
Atributo::BINARIO BINARY(n) ✅ ✅ ❌ ✅
Atributo::BINARIO_VARIABLE VARBINARY(n) ✅ ✅ ❌ ✅
Atributo::BINARIO_GRANDE BLOB ✅ ✅ ✅ ✅
Atributo::BINARIO_MATRIZ BYTEA ❌ ✅ ❌ ❌
Geométricos Soporte
Atributo::COORDENADA POINT ✅ ✅ ❌ ❌
Atributo::COORDENADA_LINEA LINESTRING ✅ ✅ ❌ ❌
Atributo::POLIGONO POLYGON ✅ ✅ ❌ ❌
Otros Soporte
Atributo::ENUMERADO ENUM(n...) ✅ ✅ ❌ ✅
Atributo::CONJUNTO SET(n...) ✅ ❌ ❌ ❌
Atributo::JSON JSON ✅ ✅ ❌ ✅
Atributo::JSONB JSONB ❌ ✅ ❌ ❌
Atributo::CASCADA CASCADE ✅ ✅ ✅ ✅
Atributo::NULO SET NULL ✅ ✅ ✅ ✅
Atributo::PREDETERMINADO SET DEFAULT ✅ ✅ ✅ ✅
Atributo::NO_ACCION NO ACTION ✅ ✅ ✅ ✅
Atributo::RESTRICCION RESTRICT ✅ ✅ ✅ ✅

Si utilizas el Modelo para interactuar con los datos de la base de datos, tendrás la ventaja de poder omitir las convenciones que tiene el ORM PIPE y adaptarse a la estructura que tenga tu tabla en la base de datos, ya que el Constructor de Consultas se adapta por defecto a las convenciones.