<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* dtb_order_register_itemテーブルに入庫数カラムを追加
*/
final class Version20251225120000 extends AbstractMigration
{
public function up(Schema $schema): void
{
// dtb_order_register_itemテーブルの存在確認
if (!$schema->hasTable('dtb_order_register_item')) {
$this->write('dtb_order_register_itemテーブルが存在しません。スキップします。');
return;
}
$table = $schema->getTable('dtb_order_register_item');
// stock_in_quantityカラムが既に存在する場合はスキップ
if ($table->hasColumn('stock_in_quantity')) {
$this->write('stock_in_quantityカラムは既に存在します。スキップします。');
return;
}
// dtb_order_register_itemテーブルに入庫数カラムを追加
$this->addSql("
ALTER TABLE dtb_order_register_item
ADD COLUMN stock_in_quantity INT NOT NULL DEFAULT 0 COMMENT '入庫数' AFTER quantity
");
$this->write('dtb_order_register_itemテーブルに入庫数カラムを追加しました');
}
public function down(Schema $schema): void
{
// dtb_order_register_itemテーブルの存在確認
if (!$schema->hasTable('dtb_order_register_item')) {
$this->write('dtb_order_register_itemテーブルが存在しません。スキップします。');
return;
}
$table = $schema->getTable('dtb_order_register_item');
// stock_in_quantityカラムが存在しない場合はスキップ
if (!$table->hasColumn('stock_in_quantity')) {
$this->write('stock_in_quantityカラムが存在しません。スキップします。');
return;
}
// ロールバック: 入庫数カラムを削除
$this->addSql("
ALTER TABLE dtb_order_register_item
DROP COLUMN stock_in_quantity
");
$this->write('dtb_order_register_itemテーブルから入庫数カラムを削除しました');
}
}