Release: CalDAV sync bundle hardening and LMW sync

This commit is contained in:
Jürgen Mummert
2026-03-27 22:16:48 +01:00
commit c6f63a56a9
36 changed files with 2993 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
<?php
declare(strict_types=1);
namespace Mummert\CalDavSyncBundle\Migration;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260327000000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add CalDAV sync columns to tl_calendar and tl_calendar_events';
}
public function up(Schema $schema): void
{
$this->addSql("ALTER TABLE tl_calendar ADD caldavSyncEnabled CHAR(1) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar ADD caldavUrl VARCHAR(2048) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar ADD caldavUsername VARCHAR(255) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar ADD caldavPassword VARCHAR(255) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar ADD caldavTimezone VARCHAR(64) NOT NULL DEFAULT ''");
$this->addSql('ALTER TABLE tl_calendar ADD caldavCalendarHrefs BLOB DEFAULT NULL');
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavCalendarHref VARCHAR(2048) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavUid VARCHAR(255) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavHref VARCHAR(2048) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavEtag VARCHAR(255) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavSyncHash VARCHAR(64) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavLastSync INT UNSIGNED NOT NULL DEFAULT 0");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavOrigin VARCHAR(16) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE tl_calendar_events ADD caldavSyncState VARCHAR(32) NOT NULL DEFAULT ''");
$this->addSql('CREATE INDEX idx_tl_calendar_caldav_enabled ON tl_calendar (caldavSyncEnabled)');
$this->addSql('CREATE INDEX idx_tl_calendar_events_caldav_calendar_href ON tl_calendar_events (caldavCalendarHref(191))');
$this->addSql('CREATE INDEX idx_tl_calendar_events_caldav_href ON tl_calendar_events (caldavHref(191))');
$this->addSql('CREATE INDEX idx_tl_calendar_events_caldav_uid ON tl_calendar_events (caldavUid)');
$this->addSql('CREATE INDEX idx_tl_calendar_events_pid ON tl_calendar_events (pid)');
}
public function down(Schema $schema): void
{
$this->addSql('DROP INDEX idx_tl_calendar_events_pid ON tl_calendar_events');
$this->addSql('DROP INDEX idx_tl_calendar_events_caldav_uid ON tl_calendar_events');
$this->addSql('DROP INDEX idx_tl_calendar_events_caldav_href ON tl_calendar_events');
$this->addSql('DROP INDEX idx_tl_calendar_events_caldav_calendar_href ON tl_calendar_events');
$this->addSql('DROP INDEX idx_tl_calendar_caldav_enabled ON tl_calendar');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavSyncState');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavOrigin');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavLastSync');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavSyncHash');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavEtag');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavHref');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavUid');
$this->addSql('ALTER TABLE tl_calendar_events DROP caldavCalendarHref');
$this->addSql('ALTER TABLE tl_calendar DROP caldavCalendarHrefs');
$this->addSql('ALTER TABLE tl_calendar DROP caldavTimezone');
$this->addSql('ALTER TABLE tl_calendar DROP caldavPassword');
$this->addSql('ALTER TABLE tl_calendar DROP caldavUsername');
$this->addSql('ALTER TABLE tl_calendar DROP caldavUrl');
$this->addSql('ALTER TABLE tl_calendar DROP caldavSyncEnabled');
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
namespace Mummert\CalDavSyncBundle\Migration;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260327223000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add configured CalDAV author field to tl_calendar';
}
public function up(Schema $schema): void
{
$this->addSql("ALTER TABLE tl_calendar ADD caldavAuthorId INT UNSIGNED NOT NULL DEFAULT 0");
$this->addSql('CREATE INDEX idx_tl_calendar_caldav_author_id ON tl_calendar (caldavAuthorId)');
}
public function down(Schema $schema): void
{
$this->addSql('DROP INDEX idx_tl_calendar_caldav_author_id ON tl_calendar');
$this->addSql('ALTER TABLE tl_calendar DROP caldavAuthorId');
}
}