78 lines
4.2 KiB
PHP
78 lines
4.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace DoctrineMigrations;
|
|
|
|
use Doctrine\DBAL\Schema\Schema;
|
|
use Doctrine\Migrations\AbstractMigration;
|
|
|
|
/**
|
|
* Auto-generated Migration: Please modify to your needs!
|
|
*/
|
|
final class Version20250605111121 extends AbstractMigration
|
|
{
|
|
public function getDescription(): string
|
|
{
|
|
return '';
|
|
}
|
|
|
|
public function up(Schema $schema): void
|
|
{
|
|
// this up() migration is auto-generated, please modify it to your needs
|
|
$this->addSql(<<<'SQL'
|
|
CREATE TABLE s3_multipart_uploads (id BIGINT AUTO_INCREMENT NOT NULL, upload_id VARCHAR(64) NOT NULL, object_key VARCHAR(255) NOT NULL, storage_path_prefix VARCHAR(2048) NOT NULL, content_type VARCHAR(255) NOT NULL, metadata JSON DEFAULT NULL, initiated_at DATETIME NOT NULL, expires_at DATETIME DEFAULT NULL, bucket_id INT NOT NULL, initiated_by_id INT NOT NULL, UNIQUE INDEX UNIQ_4FED1A58CCCFBA31 (upload_id), INDEX IDX_4FED1A5884CE584D (bucket_id), INDEX IDX_4FED1A58C4EF1FC7 (initiated_by_id), INDEX idx_upload_id (upload_id), INDEX idx_bucket_key (bucket_id, object_key), INDEX idx_expires (expires_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
CREATE TABLE s3_objects (id BIGINT AUTO_INCREMENT NOT NULL, object_key VARCHAR(255) NOT NULL, size BIGINT NOT NULL, etag VARCHAR(64) NOT NULL, content_type VARCHAR(255) NOT NULL, storage_path VARCHAR(2048) NOT NULL, metadata JSON DEFAULT NULL, is_multipart TINYINT(1) NOT NULL, part_count INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, bucket_id INT NOT NULL, INDEX IDX_4A38581D84CE584D (bucket_id), INDEX idx_etag (etag), INDEX idx_size (size), INDEX idx_created (created_at), UNIQUE INDEX uk_bucket_object (bucket_id, object_key), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
CREATE TABLE s3_presigned_urls (id BIGINT AUTO_INCREMENT NOT NULL, url_hash VARCHAR(64) NOT NULL, bucket_name VARCHAR(63) NOT NULL, object_key VARCHAR(255) NOT NULL, method VARCHAR(10) NOT NULL, expires_at DATETIME NOT NULL, access_key VARCHAR(32) NOT NULL, created_at DATETIME NOT NULL, UNIQUE INDEX UNIQ_301F0863CFECAB00 (url_hash), INDEX idx_url_hash (url_hash), INDEX idx_expires (expires_at), INDEX idx_bucket_key (bucket_name, object_key), INDEX idx_access_key (access_key), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_multipart_uploads ADD CONSTRAINT FK_4FED1A5884CE584D FOREIGN KEY (bucket_id) REFERENCES s3_buckets (id)
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_multipart_uploads ADD CONSTRAINT FK_4FED1A58C4EF1FC7 FOREIGN KEY (initiated_by_id) REFERENCES s3_credentials (id)
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_objects ADD CONSTRAINT FK_4A38581D84CE584D FOREIGN KEY (bucket_id) REFERENCES s3_buckets (id)
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_buckets ADD CONSTRAINT FK_DC7E620E7E3C61F9 FOREIGN KEY (owner_id) REFERENCES s3_credentials (id)
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_multipart_parts ADD CONSTRAINT FK_39F7DA05CCCFBA31 FOREIGN KEY (upload_id) REFERENCES s3_multipart_uploads (upload_id)
|
|
SQL);
|
|
}
|
|
|
|
public function down(Schema $schema): void
|
|
{
|
|
// this down() migration is auto-generated, please modify it to your needs
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_multipart_uploads DROP FOREIGN KEY FK_4FED1A5884CE584D
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_multipart_uploads DROP FOREIGN KEY FK_4FED1A58C4EF1FC7
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_objects DROP FOREIGN KEY FK_4A38581D84CE584D
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
DROP TABLE s3_multipart_uploads
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
DROP TABLE s3_objects
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
DROP TABLE s3_presigned_urls
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_buckets DROP FOREIGN KEY FK_DC7E620E7E3C61F9
|
|
SQL);
|
|
$this->addSql(<<<'SQL'
|
|
ALTER TABLE s3_multipart_parts DROP FOREIGN KEY FK_39F7DA05CCCFBA31
|
|
SQL);
|
|
}
|
|
}
|