Migration
Attention si vous utilisez un environnement docker pour votre base de donnée, pensez bien a effectué les commandes depuis le terminal du container php pour ne pas avoir de soucis ultérieurement.
MattaPHP offre une possibilité de gérer votre base de données avec des migrations que vous allez créer. Cela va permettre de garder un suivi sur les actions que vous effectué sur votre bas de données mais aussi de pouvoir travailler en groupe. Les migrations sont faites via MATTADB qui permet de réaliser des migrations complètes et rapidement.
Initialisation
Pour initialiser le système de migration du framework il faudra dans un premier temps installer la dépendance :
composer require matteobnvl/matta_db
composer migrate:init
Puis 3 commandes s'offre à vous :
composer migrate:create # création d'un nouveau fichier de migrations
composer migrate:run # Application des migrations
Example migration
Voilà un exemple d'un fichier de migrations pour l'une de vos tables :
class Migration1744125982
{
private $pdo;
public function __construct($pdo)
{
$this->pdo = $pdo;
}
public function up()
{
// logique pour appliquer la migration
$sql = "CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE,
`password` VARCHAR(100) NOT NULL,
createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
$this->pdo->exec($sql);
}
public function down()
{
// logique pour annuler la migration
$this->pdo->exec("DROP TABLE IF EXISTS user");
}
}