Migraciones
Migraciones en CakePHP
En CakePHP, las migraciones son una forma conveniente de gestionar la estructura de la base de datos de una aplicación. Aquí se presentan algunas operaciones y ejemplos comunes relacionados con las migraciones en CakePHP:
Crear tabla en CakePHP
Para crear una nueva migración que incluya la creación de una tabla, puedes utilizar el siguiente comando:
bin/cake migrations create NombreDelArchivo name:string visible:boolean created modifiedUna vez que se ha creado la migración, se puede ejecutar para aplicar los cambios en la base de datos:
bin/cake migrations migrateSi necesitas deshacer una migración, puedes utilizar el siguiente comando:
bin/cake migrations rollbackGenerar archivos de modelo, controlador y vistas
Para generar rápidamente archivos de modelo, controlador y vistas relacionados con una tabla de la base de datos, puedes usar el comando bake. Puedes hacerlo por separado o generar todos los archivos a la vez:
bin/cake bake model Usersbin/cake bake controller Usersbin/cake bake template Usersbin/cake bake template Users addbin/cake bake template Users editO simplemente:
bin/cake bake all UsersEjemplos de migraciones
A continuación se presentan algunos ejemplos de migraciones comunes en CakePHP:
Creación de tabla
class CreateFarms extends AbstractMigration {    public function change()    {        $table = $this->table('farms');        $table->addColumn('name', 'string', [            'default' => null,            'limit' => 255,            'null' => false,        ]);        // Agregar más columnas según sea necesario...        $table->create();
        // Ejemplo de añadir una clave externa        $refTable = $this->table('farms');        $refTable->addColumn('user_id', 'integer', ['signed' => 'disable'])                 ->addForeignKey('user_id', 'users', 'id', ['delete' => 'CASCADE', 'update' => 'NO_ACTION'])                 ->update();    }}Alterar tabla para añadir un nuevo campo
class AlterImages extends AbstractMigration {    public function change() {        $table = $this->table('images');        $table->addColumn('image', 'string', [            'default' => null,            'null' => true,        ]);        $table->addColumn('dir', 'string', [            'default' => null,            'null' => true,        ]);        $table->update();    }}Alterar tabla para modificar un campo existente
public function up() {    $table = $this->table('users');    $table->changeColumn('postal_code', 'string', [        'limit' => 255,        'default' => null,        'null' => true,    ])->save();}Eliminar un campo de una tabla
class AlterClinicals extends AbstractMigration {    public function up() {        $table = $this->table('clinicals');        $table->removeColumn('clinical_id')              ->save();    }}Eliminar una tabla completa
class DropAvoidancesDistancesImages extends AbstractMigration {    public function change() {        $table = $this->table('avoidance_distances_images');        $table->drop();    }}Estos ejemplos cubren las operaciones más comunes relacionadas con las migraciones en CakePHP. Puedes adaptarlos según las necesidades específicas de tu aplicación.