diff --git a/migrations/Version20250112051523.php b/migrations/Version20250112051523.php deleted file mode 100644 index e4aa347c..00000000 --- a/migrations/Version20250112051523.php +++ /dev/null @@ -1,39 +0,0 @@ -addSql('ALTER TABLE attachments ADD internal_path VARCHAR(255) DEFAULT \'\' NOT NULL'); - $this->addSql('ALTER TABLE attachments RENAME COLUMN path TO external_path'); - - $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%MEDIA#%%\' ESCAPE \'#\''); - $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%BASE#%%\' ESCAPE \'#\''); - $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%SECURE#%%\' ESCAPE \'#\''); - $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%FOOTPRINTS#%%\' ESCAPE \'#\''); - $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%FOOTPRINTS3D#%%\' ESCAPE \'#\''); - $this->addSql('UPDATE attachments SET external_path=\'\' WHERE internal_path <> \'\''); - } - - public function down(Schema $schema): void - { - $this->addSql('UPDATE attachments SET external_path=internal_path WHERE internal_path <> \'\''); - - $this->addSql('ALTER TABLE attachments DROP internal_path'); - $this->addSql('ALTER TABLE attachments RENAME COLUMN external_path TO path'); - } -} diff --git a/migrations/Version20250220215048.php b/migrations/Version20250220215048.php new file mode 100644 index 00000000..0c199433 --- /dev/null +++ b/migrations/Version20250220215048.php @@ -0,0 +1,69 @@ +addSql('ALTER TABLE attachments ADD internal_path VARCHAR(255) DEFAULT NULL, ADD external_path VARCHAR(255) DEFAULT NULL'); + + //Copy the data from path to external_path and remove the path column + $this->addSql('UPDATE attachments SET external_path=path'); + $this->addSql('ALTER TABLE attachments DROP path'); + + + $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%MEDIA#%%\' ESCAPE \'#\''); + $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%BASE#%%\' ESCAPE \'#\''); + $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%SECURE#%%\' ESCAPE \'#\''); + $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%FOOTPRINTS#%%\' ESCAPE \'#\''); + $this->addSql('UPDATE attachments SET internal_path=external_path WHERE external_path LIKE \'#%FOOTPRINTS3D#%%\' ESCAPE \'#\''); + $this->addSql('UPDATE attachments SET external_path=NULL WHERE internal_path IS NOT NULL'); + } + + public function mySQLDown(Schema $schema): void + { + $this->addSql('UPDATE attachments SET external_path=internal_path WHERE internal_path IS NOT NULL'); + $this->addSql('ALTER TABLE attachments DROP internal_path'); + $this->addSql('ALTER TABLE attachments RENAME COLUMN external_path TO path'); + } + + public function postgreSQLUp(Schema $schema): void + { + //We can use the same SQL for PostgreSQL as for MySQL + $this->mySQLUp($schema); + } + + public function postgreSQLDown(Schema $schema): void + { + //We can use the same SQL for PostgreSQL as for MySQL + $this->mySQLDown($schema); + } + + public function sqLiteUp(Schema $schema): void + { + // TODO: Implement sqLiteUp() method. + } + + public function sqLiteDown(Schema $schema): void + { + // TODO: Implement sqLiteDown() method. + } + + +}