/** * Check that the database schema is up to date. If it isn't, offer to update it. * * @return void */ function validate_schema() { $db = AbstractDb::getObject(); // Init values $row = null; $dbRetval = false; try { // Check the schema info $dbRetval = $db->execSqlUniqueRes("SELECT * FROM schema_info WHERE tag='schema_version'", $row, false); } catch (Exception $e) { /* Be quiet */ echo "<html><body>"; echo "<h1>" . _("I am unable to retrieve the schema version. Either the wifidog database hasn't been created yet, the postgresql server is down, or pg_hba.conf does not allow your web server to connect to the wifidog database.") . "</h1>"; echo "<h2>Error was: " . $e->getMessage() . "</h2>"; echo "<h2>" . _("Try running the") . " <a href='" . BASE_URL_PATH . "install.php'>" . _("installation script") . "</a>.</h2>\n"; echo "</html></body>"; exit; } if (empty($row)) { } else { if ($row['value'] < REQUIRED_SCHEMA_VERSION) { update_schema(); } } }
$field['default'] = $params['default']; } if (isset($params['required']) && $params['required']) { $field['required'] = $params['required']; } if (isset($params['compressed']) && $params['compressed']) { $field['compressed'] = $params['compressed']; } if (isset($params['multiValued']) && $params['multiValued']) { $field['multiValued'] = $params['multiValued']; } $is_dynamic_field = (bool) isset($params['dynamic_field']); update_schema_fields($pdo, $field, $service_id, $is_dynamic_field); } else { $solr_schema_attr = $params['hand_config_schema']; update_schema($pdo, $service_id, $solr_schema_attr); } // msg_redirect('schema_fields.php?action=list&service_id='.$service_id); msg_redirect('service_detail.php?service_id=' . $service_id . '&tab=3'); break; case 'delete': $name = $params['name']; $schema_config = pdo_get_solr_schema($pdo, $service_id); $schema_config = json_decode($schema_config['schema_json'], true); if ($schema_config['uniqueKey'] == $name) { msg_redirect('back', "This field is used by \\'uniqueKey\\'"); } if ($schema_config['defaultSearchField'] == $name) { msg_redirect('back', "This field is used by \\'defaultSearchField\\'"); } delete_schema_fields($pdo, $name, $service_id);