app/DoctrineMigrations/Version20260209120000.php line 1

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace DoctrineMigrations;
  3. use Doctrine\DBAL\Schema\Schema;
  4. use Doctrine\Migrations\AbstractMigration;
  5. final class Version20260209120000 extends AbstractMigration
  6. {
  7.     public function getDescription(): string
  8.     {
  9.         return 'スライダー管理テーブル作成 + 既存データ移行';
  10.     }
  11.     public function up(Schema $schema): void
  12.     {
  13.         $this->addSql("
  14.             CREATE TABLE dtb_slider (
  15.                 id INT AUTO_INCREMENT NOT NULL,
  16.                 title VARCHAR(255) NOT NULL,
  17.                 file_name VARCHAR(255) NOT NULL,
  18.                 category_id INT UNSIGNED DEFAULT NULL,
  19.                 alt_text VARCHAR(255) DEFAULT NULL,
  20.                 sort_no SMALLINT NOT NULL,
  21.                 visible TINYINT(1) NOT NULL DEFAULT 1,
  22.                 create_date DATETIME NOT NULL COMMENT '(DC2Type:datetimetz)',
  23.                 update_date DATETIME NOT NULL COMMENT '(DC2Type:datetimetz)',
  24.                 INDEX IDX_SLIDER_CATEGORY (category_id),
  25.                 PRIMARY KEY(id)
  26.             ) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDB
  27.         ");
  28.         $this->addSql("ALTER TABLE dtb_slider ADD CONSTRAINT FK_SLIDER_CATEGORY FOREIGN KEY (category_id) REFERENCES dtb_category (id) ON DELETE SET NULL");
  29.         $now date('Y-m-d H:i:s');
  30.         $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}')");
  31.         $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}')");
  32.         $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}')");
  33.         $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}')");
  34.         $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}')");
  35.     }
  36.     public function postUp(Schema $schema): void
  37.     {
  38.         // 既存スライダー画像を EC-CUBE の save_image ディレクトリへコピー
  39.         $projectDir dirname(__DIR__2);
  40.         $srcDir $projectDir '/html/user_data/assets/img/top_slider';
  41.         $destDir $projectDir '/html/upload/save_image';
  42.         $files = ['slider15.PNG''slider12.PNG''slider13.PNG''slider14.PNG''slider11.PNG'];
  43.         foreach ($files as $file) {
  44.             $src $srcDir '/' $file;
  45.             $dest $destDir '/' $file;
  46.             if (file_exists($src) && !file_exists($dest)) {
  47.                 copy($src$dest);
  48.             }
  49.         }
  50.     }
  51.     public function down(Schema $schema): void
  52.     {
  53.         $this->addSql("DROP TABLE dtb_slider");
  54.     }
  55. }