Adminer 5 odstraňuje podporu pro staré verze: MySQL 4, SQLite 2, extenze MSSQL (podporovaná je SQLSRV a nově i PDO_SQLSRV) a extenze mongo (podporovaná je MongoDB). Adminer také již nějakou dobu vyžaduje PHP alespoň 5.3, tato verze je i nadále podporovaná. Zachoval jsem podporu extenze mysql (spolu s mysqli a PDO_MySQL).
Další velké změny se udály na úrovni zdrojového kódu a doufám, že se navenek nijak neprojeví:
adminer_object
je nadále globální.Další změna se týká výkonnosti. Při vypnyutí output_buffering
běžel Adminer o něco pomaleji, proto ho nyní vždy zapíná (pokud už není zapnutý v konfiguraci PHP).
Dokončil jsem podporu generovaných sloupců. Podporují se při vytváření a změně tabulky, při vkládání, editaci a klonování řádků, při hromadné editaci a při exportu. K dispozici jsou v MySQL, PostgreSQL, SQLite a MS SQL.
K drobné změně došlo při vkládání řádek. Dříve se autofocusoval první sloupec, nyní se přeskočí, pokud je auto_increment.
V PostgreSQL jsem udělal tyto změny:
information_schema
se nyní nezobrazují akce pro práci s tabulkami. Stejná změna je i v MS SQL a Oracle.SQLite:
MS SQL:
ON UPDATE
a ON DELETE
.V Elasticsearch lze textově vyhledávat v boolean hodnotách.
Verze 5.0.1 opravuje hromadné operace s tabulkami (chyběl jmenný prostor), odstraňuje duplicitní sloupce ze selectu (bug #670), v MariaDB opravuje odkaz na dokumentaci proměnných (bug #658) a v PostgreSQL přidává podporu indexů na materializovaných pohledech (PR #467).
Do pluginů se dá jmenný prostor Admineru doplnit tímto skriptem:
<?php array_shift($argv); foreach ($argv as $filename) { $file = file_get_contents($filename); $file = preg_replace('~(?<!\\\\)\b(idf_escape|table|connect|get_databases|limit|limit1|db_collation|engines|logged_user|tables_list|count_tables|table_status|is_view|fk_support|fields|indexes|foreign_keys|view|collations|information_schema|error|create_database|drop_databases|rename_database|auto_increment|alter_table|alter_indexes|truncate_tables|drop_views|drop_tables|move_tables|copy_tables|trigger|triggers|trigger_options|routine|routines|routine_languages|routine_id|last_id|explain|found_rows|types|type_values|schemas|get_schema|set_schema|create_sql|truncate_sql|use_sql|trigger_sql|show_variables|process_list|show_status|convert_field|unconvert_field|support|kill_process|connection_id|max_connections' . '|add_invalid_login|check_invalid_login|unset_permanent|auth_error' . '|page_header|page_headers|csp|get_nonce|page_messages|page_footer' . '|add_driver|get_driver' . '|select|referencable_primary|adminer_settings|adminer_setting|set_adminer_settings|textarea|select_input|json_row|edit_type|get_partitions_info|process_length|process_type|process_field|default_value|type_class|edit_fields|process_fields|normalize_enum|grant|drop_create|create_trigger|create_routine|remove_definer|format_foreign_key|tar_file|ini_bytes|doc_link|ob_gzencode|db_size|set_utf8mb4' . '|connection|adminer|version|idf_unescape|escape_string|number|number_type|remove_slashes|bracket_escape|min_version|charset|script|script_src|nonce|target_blank|h|nl_br|checkbox|optionlist|html_select|confirm|print_fieldset|bold|js_escape|ini_bool|sid|set_password|get_password|q|get_val|get_vals|get_key_vals|get_rows|unique_array|escape_key|where|where_check|where_link|convert_fields|cookie|restart_session|stop_session|get_session|set_session|auth_url|is_ajax|redirect|query_redirect|queries|apply_queries|queries_redirect|format_time|relative_uri|remove_from_uri|pagination|get_file|upload_error|repeat_pattern|is_utf8|shorten_utf8|format_number|friendly_url|hidden_fields|hidden_fields_get|table_status1|column_foreign_keys|enum_input|input|process_input|fields_from_edit|search_tables|dump_headers|dump_csv|apply_sql_function|get_temp_dir|file_open_lock|file_write_unlock|password_file|rand_string|select_value|is_mail|is_url|is_shortable|count_rows|slow_query|get_token|verify_token|lzw_decompress|on_help|edit_form' . '|get_lang|lang|switch_lang' . '|email_header|send_mail|like_bool)\(~', 'Adminer\\\\\0', $file); file_put_contents($filename, $file); } ?>
Verze 5.0.2 opravuje zadávání hodnoty NULL do sloupce typu ENUM v PostgreSQL (bug #884), přidává podporu CockroachDB a v Elasticsearch zohledňuje práva where
a order
.