<?php declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260209120000 extends AbstractMigration
{
public function getDescription(): string
{
return 'スライダー管理テーブル作成 + 既存データ移行';
}
public function up(Schema $schema): void
{
$this->addSql("
CREATE TABLE dtb_slider (
id INT AUTO_INCREMENT NOT NULL,
title VARCHAR(255) NOT NULL,
file_name VARCHAR(255) NOT NULL,
category_id INT UNSIGNED DEFAULT NULL,
alt_text VARCHAR(255) DEFAULT NULL,
sort_no SMALLINT NOT NULL,
visible TINYINT(1) NOT NULL DEFAULT 1,
create_date DATETIME NOT NULL COMMENT '(DC2Type:datetimetz)',
update_date DATETIME NOT NULL COMMENT '(DC2Type:datetimetz)',
INDEX IDX_SLIDER_CATEGORY (category_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDB
");
$this->addSql("ALTER TABLE dtb_slider ADD CONSTRAINT FK_SLIDER_CATEGORY FOREIGN KEY (category_id) REFERENCES dtb_category (id) ON DELETE SET NULL");
$now = date('Y-m-d H:i:s');
$this->addSql("INSERT INTO dtb_slider (title, file_name, category_id, alt_text, sort_no, visible, create_date, update_date) VALUES ('あけおめ', 'slider15.PNG', NULL, 'あけおめ', 1, 1, '{$now}', '{$now}')");
$this->addSql("INSERT INTO dtb_slider (title, file_name, category_id, alt_text, sort_no, visible, create_date, update_date) VALUES ('リニューアル', 'slider12.PNG', NULL, 'リニューアル', 2, 1, '{$now}', '{$now}')");
$this->addSql("INSERT INTO dtb_slider (title, file_name, category_id, alt_text, sort_no, visible, create_date, update_date) VALUES ('GSC', 'slider13.PNG', 204, 'GSC', 3, 1, '{$now}', '{$now}')");
$this->addSql("INSERT INTO dtb_slider (title, file_name, category_id, alt_text, sort_no, visible, create_date, update_date) VALUES ('Gecco', 'slider14.PNG', 219, 'Gecco', 4, 1, '{$now}', '{$now}')");
$this->addSql("INSERT INTO dtb_slider (title, file_name, category_id, alt_text, sort_no, visible, create_date, update_date) VALUES ('モジュール', 'slider11.PNG', 2505, 'モジュール', 5, 1, '{$now}', '{$now}')");
}
public function postUp(Schema $schema): void
{
// 既存スライダー画像を EC-CUBE の save_image ディレクトリへコピー
$projectDir = dirname(__DIR__, 2);
$srcDir = $projectDir . '/html/user_data/assets/img/top_slider';
$destDir = $projectDir . '/html/upload/save_image';
$files = ['slider15.PNG', 'slider12.PNG', 'slider13.PNG', 'slider14.PNG', 'slider11.PNG'];
foreach ($files as $file) {
$src = $srcDir . '/' . $file;
$dest = $destDir . '/' . $file;
if (file_exists($src) && !file_exists($dest)) {
copy($src, $dest);
}
}
}
public function down(Schema $schema): void
{
$this->addSql("DROP TABLE dtb_slider");
}
}