public function update()
{
// Do the initial check
$fromTables = $this->getInstalledTables();
$toTables = $this->getSchemaTables();
$this->getSchemaComparator()->compare($fromTables, $toTables, $this->app['schema.content_tables']->keys());
$response = $this->getSchemaComparator()->getResponse();
$creates = $this->getSchemaComparator()->getCreates();
$alters = $this->getSchemaComparator()->getAlters();
$modifier = new TableModifier($this->connection, $this->app['logger.system'], $this->app['logger.flash']);
$modifier->createTables($creates, $response);
$modifier->alterTables($alters, $response);
$event = new SchemaEvent($creates, $alters);
$this->app['dispatcher']->dispatch(SchemaEvents::UPDATE, $event);
// Recheck now that we've processed
$fromTables = $this->getInstalledTables();
$toTables = $this->getSchemaTables();
$this->getSchemaComparator()->compare($fromTables, $toTables, $this->app['schema.content_tables']->keys());
if (!$this->getSchemaComparator()->hasPending($fromTables, $toTables, $this->app['schema.content_tables']->keys())) {
$this->getSchemaTimer()->setCheckExpiry();
}
return $response;
}