53 lines
1.6 KiB
PHP
53 lines
1.6 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Domain\Media\Migrations;
|
|
|
|
use App\Framework\Database\ConnectionInterface;
|
|
use App\Framework\Database\Migration\Migration;
|
|
|
|
final class CreateImagesTable implements Migration
|
|
{
|
|
|
|
public function up(ConnectionInterface $connection): void
|
|
{
|
|
$sql = <<<SQL
|
|
CREATE TABLE IF NOT EXISTS images (
|
|
ulid VARCHAR(26) NOT NULL,
|
|
filename VARCHAR(255) NOT NULL,
|
|
original_filename VARCHAR(255) NOT NULL,
|
|
mime_type VARCHAR(100) NOT NULL,
|
|
file_size BIGINT NOT NULL,
|
|
width INT UNSIGNED NOT NULL,
|
|
height INT UNSIGNED NOT NULL,
|
|
hash VARCHAR(255) NOT NULL,
|
|
path VARCHAR(500) NOT NULL,
|
|
alt_text TEXT NOT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NULL DEFAULT NULL,
|
|
|
|
PRIMARY KEY (ulid),
|
|
UNIQUE KEY uk_images_hash (hash),
|
|
UNIQUE KEY uk_images_ulid (ulid)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
SQL;
|
|
|
|
$connection->query($sql);
|
|
}
|
|
|
|
public function down(ConnectionInterface $connection): void
|
|
{
|
|
$connection->execute("DROP TABLE IF EXISTS images");
|
|
}
|
|
|
|
public function getVersion(): string
|
|
{
|
|
return "002";
|
|
}
|
|
|
|
public function getDescription(): string
|
|
{
|
|
return "Create Image Table";
|
|
}
|
|
}
|