summaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Migration
diff options
context:
space:
mode:
authorGeorg Ehrke <developer@georgehrke.com>2019-07-25 14:09:39 +0200
committerGeorg Ehrke <developer@georgehrke.com>2019-08-01 10:08:55 +0200
commit9f345bd7862a11b005d94642c82b365055cc6f63 (patch)
treecf4db06371568a1726c227c095b18d71b7e6bca0 /apps/dav/lib/Migration
parent2dc79e583902bd591f9c56943f9296654b0781e5 (diff)
downloadnextcloud-server-9f345bd7862a11b005d94642c82b365055cc6f63.tar.gz
nextcloud-server-9f345bd7862a11b005d94642c82b365055cc6f63.zip
add oc_calendar_resources_md and oc_calendar_rooms_md tables
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
Diffstat (limited to 'apps/dav/lib/Migration')
-rw-r--r--apps/dav/lib/Migration/Version1011Date20190725113607.php69
1 files changed, 69 insertions, 0 deletions
diff --git a/apps/dav/lib/Migration/Version1011Date20190725113607.php b/apps/dav/lib/Migration/Version1011Date20190725113607.php
new file mode 100644
index 00000000000..ac4019e64e6
--- /dev/null
+++ b/apps/dav/lib/Migration/Version1011Date20190725113607.php
@@ -0,0 +1,69 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OCA\DAV\Migration;
+
+use Closure;
+use Doctrine\DBAL\Types\Type;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\SimpleMigrationStep;
+use OCP\Migration\IOutput;
+
+/**
+ * Auto-generated migration step: Please modify to your needs!
+ */
+class Version1011Date20190725113607 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ * @since 13.0.0
+ */
+ public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $types = ['resource', 'room'];
+ foreach($types as $type) {
+ if (!$schema->hasTable($this->getMetadataTableName($type))) {
+ $table = $schema->createTable($this->getMetadataTableName($type));
+
+ $table->addColumn('id', Type::BIGINT, [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ 'length' => 11,
+ 'unsigned' => true,
+ ]);
+ $table->addColumn($type . '_id', Type::BIGINT, [
+ 'notnull' => true,
+ 'length' => 11,
+ 'unsigned' => true,
+ ]);
+ $table->addColumn('key', Type::STRING, [
+ 'notnull' => true,
+ 'length' => 255,
+ ]);
+ $table->addColumn('value', Type::STRING, [
+ 'notnull' => false,
+ 'length' => 4000,
+ ]);
+
+ $table->setPrimaryKey(['id']);
+ $table->addIndex([$type . '_id', 'key'], $this->getMetadataTableName($type) . '_idk');
+ }
+ }
+
+ return $schema;
+ }
+
+ /**
+ * @param string $type
+ * @return string
+ */
+ private function getMetadataTableName(string $type):string {
+ return 'calendar_' . $type . 's_md';
+ }
+}