Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function drupal_get_schema

Gets the schema definition of a table, or the whole database schema.

The returned schema will include any modifications made by any module that implements hook_schema_alter(). To get the schema without modifications, use drupal_get_schema_unprocessed().

Parameters

$table: The name of the table. If not given, the schema of all tables is returned.

$rebuild: If true, the schema will be rebuilt instead of retrieved from the cache.

Related topics

Schema API
API to handle database schemas.
29 calls to drupal_get_schema()
DatabaseInsertDefaultsTestCase::testDefaultInsert in modules/simpletest/tests/database_test.test
Test that we can run a query that is "default values for everything".
DatabaseInsertDefaultsTestCase::testDefaultInsertWithFields in modules/simpletest/tests/database_test.test
Test that we can insert fields with values and defaults in the same query.
DatabaseSelectComplexTestCase2::setUp in modules/simpletest/tests/database_test.test
Sets up a Drupal site for running functional and integration tests.
DatabaseTestCase::ensureSampleDataNull in modules/simpletest/tests/database_test.test
Set up tables for NULL handling.
DatabaseTestCase::setUp in modules/simpletest/tests/database_test.test
Sets up a Drupal site for running functional and integration tests.

... See full list

File

includes/bootstrap.inc, line 3360

Code

function drupal_get_schema ($table = NULL, $rebuild = FALSE) {
 static $schema;
 if ($rebuild || !isset($table)) {
 $schema = drupal_get_complete_schema ($rebuild);
 }
 elseif (!isset($schema)) {
 $schema = new SchemaCache ();
 }
 if (!isset($table)) {
 return $schema;
 }
 if (isset($schema[$table])) {
 return $schema[$table];
 }
 else {
 return FALSE;
 }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.