hasTable('talk_bans')) { $table = $schema->createTable('talk_bans'); $table->addColumn('id', Types::BIGINT, [ 'autoincrement' => true, 'notnull' => true, 'length' => 20, ]); $table->addColumn('moderator_actor_type', Types::STRING, [ 'notnull' => true, 'length' => 32, ]); $table->addColumn('moderator_actor_id', Types::STRING, [ 'notnull' => true, 'length' => 255, ]); $table->addColumn('moderator_displayname', Types::STRING, [ 'notnull' => false, 'length' => 255, ]); $table->addColumn('banned_actor_type', Types::STRING, [ 'notnull' => true, 'length' => 32, ]); $table->addColumn('banned_actor_id', Types::STRING, [ 'notnull' => true, 'length' => 255, ]); $table->addColumn('banned_displayname', Types::STRING, [ 'notnull' => false, 'length' => 255, ]); $table->addColumn('room_id', Types::BIGINT, [ 'unsigned' => true, ]); $table->addColumn('banned_time', Types::DATETIME, [ 'notnull' => false, ]); $table->addColumn('internal_note', Types::TEXT, [ 'notnull' => false, ]); $table->setPrimaryKey(['id']); //A user should not be banned from the same room more than once $table->addUniqueIndex(['banned_actor_type', 'banned_actor_id', 'room_id'], 'talk_room_bans'); $table->addIndex(['room_id']); return $schema; } return null; } }