hasTable('upschooling_tickets')) { $table = $schema->createTable('upschooling_tickets'); $table->addColumn('id', 'integer', [ 'autoincrement' => true, 'notnull' => true, ]); $table->addColumn('matrix_room', 'string', [ 'notnull' => true, 'length' => 200, ]); $table->addColumn('matrix_assisted_user', 'string', [ 'notnull' => true, 'length' => 200, ]); $table->addColumn('matrix_helper_user', 'string', [ 'notnull' => false, 'length' => 200, ]); // could be optimized by having a "localUser" with foreign key to users.id, // but that would create consistency issues $table->addColumn('status', 'string', [ 'notnull' => true, 'length' => 63, ]); $table->addColumn('version', 'integer', [ 'notnull' => true, ]); $table->setPrimaryKey(['id']); $table->addUniqueConstraint(['matrix_room'], 'upschooling_mx_room_id_uniq'); $table->addIndex(['matrix_room'], 'upschooling_mx_room_id_idx'); } if (!$schema->hasTable('upschooling_users')) { $table = $schema->createTable('upschooling_users'); $table->addColumn('id', 'integer', [ 'autoincrement' => true, 'notnull' => true, ]); $table->addColumn('user_id', 'string', [ 'notnull' => true, 'length' => 64, ]); $table->addColumn('matrix_user', 'string', [ 'notnull' => true, 'length' => 200, ]); $table->addColumn('matrix_token', 'string', [ 'notnull' => true, 'length' => 200, ]); $table->setPrimaryKey(['id']); $table->addUniqueConstraint(['user_id'], 'upschooling_mx_user_nc_uniq'); $table->addUniqueConstraint(['matrix_user'], 'upschooling_mx_user_mx_uniq'); $table->addForeignKeyConstraint('users', ['user_id'], ['uid'], [], 'upschooling_mx_user_nc_fk'); } return $schema; } }