getTable('mail_local_messages'); if (!$localMessagesTable->hasColumn('status')) { $localMessagesTable->addColumn('status', Types::INTEGER, [ 'notnull' => false, 'default' => 0, ]); } if (!$localMessagesTable->hasColumn('raw')) { $localMessagesTable->addColumn('raw', Types::TEXT, [ 'notnull' => false, 'default' => null, ]); } return $schema; } /** * @param IOutput $output * @param Closure(): ISchemaWrapper $schemaClosure * @param array $options * * @return void */ #[\Override] public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) { // Let's buffer this a bit $aMinuteAgo = time() - 60; $query = $this->connection->getQueryBuilder(); $query->update('mail_local_messages') ->set('status', $query->createNamedParameter(11, IQueryBuilder::PARAM_INT)) ->where( $query->expr()->lt('send_at', $query->createNamedParameter($aMinuteAgo, IQueryBuilder::PARAM_INT)), $query->expr()->eq('type', $query->createNamedParameter(LocalMessage::TYPE_OUTGOING, IQueryBuilder::PARAM_INT)), ); $query->executeStatement(); } }