Files
thetool/db/migrations/20251204000004_update_manual_invoice_status_values.php

34 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class UpdateManualInvoiceStatusValues extends AbstractMigration
{
public function up(): void
{
if ($this->getEnvironment() == "thetool") {
// Change status column from enum to varchar to support new values
$this->execute("ALTER TABLE ManualInvoice MODIFY COLUMN status VARCHAR(50) NOT NULL DEFAULT 'erstellt'");
// Update existing values to new ones
$this->execute("UPDATE ManualInvoice SET status = 'erstellt' WHERE status = 'draft'");
$this->execute("UPDATE ManualInvoice SET status = 'gesendet' WHERE status = 'finalized'");
$this->execute("UPDATE ManualInvoice SET status = 'exportiert' WHERE status = 'exported'");
}
}
public function down(): void
{
if ($this->getEnvironment() == "thetool") {
// Revert values back
$this->execute("UPDATE ManualInvoice SET status = 'draft' WHERE status = 'erstellt'");
$this->execute("UPDATE ManualInvoice SET status = 'finalized' WHERE status = 'gesendet'");
$this->execute("UPDATE ManualInvoice SET status = 'exported' WHERE status = 'exportiert'");
// Change back to enum
$this->execute("ALTER TABLE ManualInvoice MODIFY COLUMN status ENUM('draft', 'finalized', 'exported') NOT NULL DEFAULT 'draft'");
}
}
}