58 lines
4.2 KiB
PHP
58 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 Version20240429224611 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('CREATE TEMPORARY TABLE __temp__notes AS SELECT speaker_id, series_id, id, title, text, date, passage, refs FROM notes');
|
|
$this->addSql('DROP TABLE notes');
|
|
$this->addSql('CREATE TABLE notes (id VARCHAR(64) NOT NULL, speaker_id INTEGER NOT NULL, series_id INTEGER DEFAULT NULL, title VARCHAR(255) NOT NULL, text CLOB NOT NULL, date DATE NOT NULL, passage VARCHAR(255) DEFAULT NULL, refs CLOB DEFAULT NULL --(DC2Type:json)
|
|
, PRIMARY KEY(id), CONSTRAINT FK_11BA68CD04A0F27 FOREIGN KEY (speaker_id) REFERENCES speaker (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_11BA68C5278319C FOREIGN KEY (series_id) REFERENCES series (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE)');
|
|
$this->addSql('INSERT INTO notes (speaker_id, series_id, id, title, text, date, passage, refs) SELECT speaker_id, series_id, id, title, text, date, passage, refs FROM __temp__notes');
|
|
$this->addSql('DROP TABLE __temp__notes');
|
|
$this->addSql('CREATE INDEX IDX_11BA68C5278319C ON notes (series_id)');
|
|
$this->addSql('CREATE INDEX IDX_11BA68CD04A0F27 ON notes (speaker_id)');
|
|
$this->addSql('CREATE TEMPORARY TABLE __temp__reference AS SELECT id, type, name, label, ndx, content FROM reference');
|
|
$this->addSql('DROP TABLE reference');
|
|
$this->addSql('CREATE TABLE reference (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, type VARCHAR(64) NOT NULL, name VARCHAR(255) NOT NULL, label VARCHAR(10) NOT NULL, ndx INTEGER DEFAULT NULL, content CLOB NOT NULL, id_list CLOB DEFAULT NULL --(DC2Type:array)
|
|
)');
|
|
$this->addSql('INSERT INTO reference (id, type, name, label, ndx, content) SELECT id, type, name, label, ndx, content FROM __temp__reference');
|
|
$this->addSql('DROP TABLE __temp__reference');
|
|
$this->addSql('CREATE UNIQUE INDEX UNIQ_AEA34913EA750E8 ON reference (label)');
|
|
}
|
|
|
|
public function down(Schema $schema): void
|
|
{
|
|
// this down() migration is auto-generated, please modify it to your needs
|
|
$this->addSql('CREATE TEMPORARY TABLE __temp__notes AS SELECT id, speaker_id, series_id, title, text, date, passage, refs FROM notes');
|
|
$this->addSql('DROP TABLE notes');
|
|
$this->addSql('CREATE TABLE notes (speaker_id INTEGER NOT NULL, series_id INTEGER DEFAULT NULL, id VARCHAR(64) NOT NULL, title VARCHAR(255) NOT NULL, text CLOB NOT NULL, date DATE NOT NULL, passage VARCHAR(255) DEFAULT NULL, refs CLOB DEFAULT NULL --(DC2Type:json)
|
|
, CONSTRAINT FK_11BA68CD04A0F27 FOREIGN KEY (speaker_id) REFERENCES speaker (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_11BA68C5278319C FOREIGN KEY (series_id) REFERENCES series (id) NOT DEFERRABLE INITIALLY IMMEDIATE)');
|
|
$this->addSql('INSERT INTO notes (id, speaker_id, series_id, title, text, date, passage, refs) SELECT id, speaker_id, series_id, title, text, date, passage, refs FROM __temp__notes');
|
|
$this->addSql('DROP TABLE __temp__notes');
|
|
$this->addSql('CREATE INDEX IDX_11BA68CD04A0F27 ON notes (speaker_id)');
|
|
$this->addSql('CREATE INDEX IDX_11BA68C5278319C ON notes (series_id)');
|
|
$this->addSql('CREATE TEMPORARY TABLE __temp__reference AS SELECT id, type, name, label, ndx, content FROM reference');
|
|
$this->addSql('DROP TABLE reference');
|
|
$this->addSql('CREATE TABLE reference (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, type VARCHAR(64) NOT NULL, name VARCHAR(255) NOT NULL, label VARCHAR(10) NOT NULL, ndx INTEGER DEFAULT NULL, content CLOB NOT NULL)');
|
|
$this->addSql('INSERT INTO reference (id, type, name, label, ndx, content) SELECT id, type, name, label, ndx, content FROM __temp__reference');
|
|
$this->addSql('DROP TABLE __temp__reference');
|
|
}
|
|
}
|