function hook_tripal_get_schema_name_alter
2.x tripal_core.chado_query.api.inc | hook_tripal_get_schema_name_alter($schema_name, $context) |
3.x tripal_chado.DEPRECATED.api.inc | hook_tripal_get_schema_name_alter($schema_name, $context) |
Alter the name of the schema housing Chado and/or Drupal.
This example implementation shows a solution for the case where your chado database was well established in the "public" schema and you added Drupal later in a "drupal" schema. Please note that this has not been tested and while we can ensure that Tripal will work as expected, we have no control over whether Drupal is compatible with not being in the public schema. That's why we recommened the organization we have (ie: Chado in a "chado" schema and Drupal in the "public schema).
Parameters
$schema_name: The current name of the schema as known by Tripal. This is likely the default set in tripal_get_schema_name() but in the case of multiple alter hooks, it might be different.
$context: This is an array of items to provide context.
- schema: this is the schema that was passed to tripal_get_schema_name() and will be either "chado" or "drupal". This should be used to determine you are changing the name of the correct schema.
Related topics
- tripal_get_schema_name in tripal_core/
api/ tripal_core.chado_query.api.inc - Retrieve the name of the PostgreSQL schema housing Chado or Drupal.
File
- tripal_core/
api/ tripal_core.chado_query.api.inc, line 1847 - Provides an API for querying of chado including inserting, updating, deleting and selecting from chado.
Code
function hook_tripal_get_schema_name_alter($schema_name, $context) {
// First we check which schema was passed to chado_get_schema().
// Notice that we do not use $schema_name since it may already have
// been altered by another module.
if ($context['schema'] == 'chado') {
$schema_name = 'public';
}
// Notice that we use elseif to capture the second case rather than else. This
// avoids the assumption that there is only one chado and one drupal schema.
elseif ($context['schema'] == 'drupal') {
$schema_name = 'drupal';
}
}