Jak používat Phinx na migrace databáze

Jak používat Phinx na migrace databáze

V tomto článku se podíváme se na to, jak Phinx nainstalovat, nastavit a jak vytvořit a provést databázovou migraci.

 

Phinx - zprovoznění

Instalace

composer require robmorgan/phinx

Init

vendor/bin/phinx init

Tím se vytvořil soubor phinx.php a tam je třeba nastavit přístupy k databázi atd.

 

Databázové migrace

Vytvoření migrace

Nyní je třeba vytvořit migraci s nějakým názvem, např. přidání sloupce pro aktivitu u uživatele.

vendor/bin/phinx create AddUserActivity

Vytvoření migrace

Vytvořením migrace se vytvořil soubor db/migrations/20250221053911_add_user_activity.php a ten nyní můžeme upravit.

Do metody up() se napíše co chceme v databázi provést za změny a do metody down() zase SQL query pro vrácení těchto změn zpět.

public function up(): void
{
$sqlQuery = "
ALTER TABLE `user` ADD `active` TINYINT(1) NOT NULL DEFAULT '1';
";

$this->execute($sqlQuery);
}

public function down(): void
{
$sqlQuery = "
ALTER TABLE `user` DROP `active`
";

$this->execute($sqlQuery);
}
 

Provedení migrace

vendor/bin/phinx migrate -e development

Skvělé, nyní se provedla databázová migrace a tato změna se také zalogovala do databázové tabulky phinxlog.

 

Vrácení změn (rollback)

Pokud se chceme vrátit v migracích zpět, tak se použije tzv. rollback.

Rollback na předchozí verzi

vendor/bin/phinx rollback -e development

Rollback na verzi 20250217053911

vendor/bin/phinx rollback -e development -t 20120103083322

 

Možné chyby

1.) RuntimeException: You need to enable the PDO_Mysql extension for Phinx to run properly.

FIX: sudo apt install php8.3-pdo


2.) PDOException: SQLSTATE[HY000] [2002] No such file or directory in /vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php:96

FIX: Nefunguje spojení na db

 

3.) Nefungují phinx migrace přes docker

FIX: docker exec fa8ed9411c55 /var/www/vendor/bin/phinx --configuration="/var/www/phinx.php" migrate -e development

Komentáře

Vaše reakce na Jak používat Phinx na migrace databáze

Související obsah

programovani

php

sql

databaze

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.