Files
KantSites/migrations/Version20261104000100.php
T
kantarciandClaude Opus 5.5 76613b9f8e Add videos: library, block and section background
Videos join the media library as their own table (schema v28), with a
video block and a looping background on sections. video.js starts loops
only while visible, offers a pause button and leaves the still image for
reduced motion and data saving.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PWYm8kjAWmZaB2QB2xuBhU
2026-11-05 05:23:17 +00:00

40 lines
1.2 KiB
PHP

<?php
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20261104000100 extends AbstractMigration
{
public function getDescription(): string
{
return 'Videos in der Mediathek: fuer den Video-Baustein und den Hintergrund einer Sektion.';
}
public function isTransactional(): bool
{
return false;
}
public function up(Schema $schema): void
{
// Eine eigene Tabelle wie bei den Dokumenten: jede Stelle, die ein Bild sucht, erwartet
// Varianten mit Breite und Hoehe.
$video = $schema->createTable('video');
$video->addColumn('id', 'string', ['length' => 32]);
$video->addColumn('title', 'string', ['length' => 160]);
$video->addColumn('mime', 'string', ['length' => 16]);
$video->addColumn('bytes', 'integer');
$video->addColumn('archived', 'boolean', ['default' => false]);
$video->addColumn('version', 'integer', ['default' => 1]);
$video->addColumn('created_at', 'datetime_immutable');
$video->setPrimaryKey(['id']);
}
public function down(Schema $schema): void
{
$schema->dropTable('video');
}
}