You are here

public function S3fsService::setupTempTable in S3 File System 4.0.x

Same name and namespace in other branches
  1. 8.3 src/S3fsService.php \Drupal\s3fs\S3fsService::setupTempTable()

Setup the temporary table.

Overrides S3fsServiceInterface::setupTempTable

1 call to S3fsService::setupTempTable()
S3fsService::refreshCache in src/S3fsService.php
Refreshes the metadata cache.

File

src/S3fsService.php, line 557

Class

S3fsService
Defines a S3fsService service.

Namespace

Drupal\s3fs

Code

public function setupTempTable() {

  // Create the temp table, into which all the refreshed data will be written.
  // After the full refresh is complete, the temp table will be swapped with
  // the real one.
  module_load_install('s3fs');
  $schema = s3fs_schema();
  try {
    \Drupal::database()
      ->schema()
      ->dropTable('s3fs_file_temp');
    \Drupal::database()
      ->schema()
      ->createTable('s3fs_file_temp', $schema['s3fs_file']);

    // Due to http://drupal.org/node/2193059, the temp table fails to pick up
    // the primary key - fix things up manually.
    s3fs_fix_table_indexes('s3fs_file_temp');
  } catch (SchemaObjectExistsException $e) {

    // The table already exists, so we can simply truncate it to start fresh.
    \Drupal::database()
      ->truncate('s3fs_file_temp')
      ->execute();
  }
}