1.3 KiB
1.3 KiB
Plugin Migración de esquemas
Kanboard realiza migraciones de base de datos automaticamente para ti. Las migraciones deben ser almacenadas en una carpeta Schema y el nombre de archivo debe ser el mismo que el controlador de base de datos:
Schema
├── Mysql.php
├── Postgres.php
└── Sqlite.php
Cada archivo contiene todas las migraciones, aqui un ejemple para Sqlite:
<?php
namespace Kanboard\Plugin\Something\Schema;
const VERSION = 1;
function version_1($pdo)
{
$pdo->exec('CREATE TABLE IF NOT EXISTS something (
"id" INTEGER PRIMARY KEY,
"project_id" INTEGER NOT NULL,
"something" TEXT,
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE
)');
}
- La constante
VERSIONes la ultima versión de tu esquema - Cada funcion es una migración
version_1(),version_2(), etc. - Una instancia
PDOes pasado como un primer argumneto - Todo se ejecuta dentro de una transacción , si algo no funciona se realiza una operación de rollback y se muestra el error al usuario
Kanboard siempre compara la version definida en tu esquema y la version almacenada en la base de datos. Si la versiones son diferentes, kanboard siempre ejecuta cada migración una por una hasta alcanzar la ultima version.