adminer v6.1.1 版本更新介绍
发布日期: 2026-09-25
版本号: v6.1.1
Adminer 新版本更新总结:修复了多种数据库的编辑身份识别问题(PostgreSQL、Oracle、Firebird 的编辑标识,MS SQL 的 rowversion,ClickHouse 的 key),并修复了多处回归缺陷,包括 6.1.0 引入的 NULL 值修改问题、6.0.0 引入的搜索与转义问题(\b 被转成退格、报错后无法再次保存修改值),以及 5.4.2 引入的 MySQL json 和 PostgreSQL jsonb 大数字被四舍五入的问题。界面方面改进了数据库概览横向滚动时保留表名、Select 页面横向滚动保留复选框、高亮搜索文本、支持不带值的 IS NULL 与 IS NOT NULL 搜索、以书本图标展示文档链接并从标题跳转、菜单中对系统数据库和模式分组、外键描述改用第一个字符串列并缩短过长描述、触发器新名称包含全部事件。PostgreSQL 方面新增从表结构修改触发器函数、导出与修改枚举及数组列的默认值(缺陷 1342)、编辑含撇号的枚举值、修改表时对含大写字母的用户类型加引号、修复重命名列同时设为外键、不再将数组值和合法日期时间误判为过长。MS SQL 方面导出与修改 datetime2、time、datetimeoffset 的精度,用 sqlsrv 扩展保存行时保留小数秒和时区偏移,Dblib 驱动显示 uniqueidentifier(缺陷 1339)与服务器版本、修复生成列和索引视图的创建、SQL 命令可回滚未完成事务。Oracle 方面将 SYS 和 SYSTEM 视为只读、支持标识列、修改 timestamp 与 interval 列并在类型显示中去掉重复精度。SQLite 方面禁止带 BOM 前缀的 ATTACH 和 VACUUM INTO 以修复安全漏洞 GHSA-r9r5-j5q8-8c59,并通过授权器禁止写文件(PHP 8.0+、PDO PHP 8.5+)。ClickHouse 方面提供几何类型、Time 和 Time64 并按其他驱动分组类型、只读用户也能看到行数、用 MD5 哈希缩短长字符串或几何值的行链接、不再四舍五入大整数和十进制数(如 UInt64、Decimal128)、空映射和数字键映射显示为对象、Array、Map、Tuple 中的十进制数精确保存并支持非字符串键的 Map。PDO 保留 double 的精确值(缺陷 1214)。其他修复包括 1214 号缺陷的 PDO double 精度保留。插件方面:驱动插件新增 Driver::disconnect() 忘记已登录用户、可连接驱动自身协议的特权端口(ClickHouse、Elasticsearch、IMAP)、Driver::hasEstimatedRows() 估算后才重新统计行数、Driver::md5() 缩缩短长值行链接、Driver::isSystem() 分组系统数据库与模式;新增 namePattern() 方法自定义索引、外键、检查和触发器的新名称;igdb 插件改用客户端密钥登录;新增 select-foreign 插件,与 Adminer Editor 相同,显示被引用行的第一个字符串列而非外键值;新增 name-patterns 插件,按自定义命名约定命名新索引、外键、检查和触发器。 跳过了逐条罗列的英文原文细节与链接;风险:个别条目为意译,缺陷编号与安全标识(GHSA-r9r5-j5q8-8c59、bug #1214/#1339/#1342)建议保留原文核对。
更新内容 (中文)
- 修复编辑标识(PostgreSQL、Oracle、Firebird)、rowversion(MS SQL)、key(ClickHouse)
- Select:修复修改含 NULL 值的行(仅未编译版本,6.1.0 引入的回归问题)
- Edit:保存行时不对 MySQL 的 json 和 PostgreSQL 的 jsonb 中的大数字进行四舍五入(5.4.2 引入的回归问题)
- 数据库概览:水平滚动表列表时保持表名可见
- Select:水平滚动时保持复选框可见
- Select:出错后可再次保存已修改的值(6.0.0 引入的回归问题)
- Select:高亮显示搜索到的文本
- Select:支持不带值的 IS NULL 和 IS NOT NULL 全局搜索
- 以 📖 形式展示文档链接,并从标题处链接
- 菜单:对系统数据库和 schema 进行分组
- 触发器:按新触发器包含的全部事件为其命名
- PDO:保留 double 的精确值(bug #1214)
- PostgreSQL、MS SQL、Oracle:不过长显示合法的日期或时间值
- PostgreSQL:从表结构修改触发器函数
- PostgreSQL:不过长显示数组值
- PostgreSQL:修复同时重命名列并将其设为外键的问题
- PostgreSQL:导出并修改枚举和数组列的默认值(bug #1342)
- PostgreSQL:编辑包含撇号的枚举值
- PostgreSQL:修改表时,为含大写字母的用户类型加引号
- SQLite:禁止以 BOM 为前缀的 ATTACH 和 VACUUM INTO(GHSA-r9r5-j5q8-8c59)
- SQLite:通过 authorizer 禁止写入文件(PHP 8.0+,PDO PHP 8.5+)
- MS SQL:导出并修改 datetime2、time 和 datetimeoffset 的精度
- MS SQL:使用 sqlsrv 扩展保存行时保留小数秒和时区偏移
- MS SQL Dblib:显示 uniqueidentifier(bug #1339)
- MS SQL Dblib:显示服务器版本
- MS SQL Dblib:修复创建计算列和索引视图的问题
- MS SQL Dblib:SQL 命令:回滚未完成的事务
- Oracle:将 SYS 和 SYSTEM 视为只读
- Oracle:支持标识列(identity columns)
- Oracle:修改 timestamp 和 interval 列,显示其类型时避免精度重复
- ClickHouse:提供几何类型、Time 和 Time64,并像其他驱动一样对类型进行分组
- ClickHouse:向只读用户显示行数
- ClickHouse:对包含长字符串或几何值的行,使用其 MD5 哈希缩短链接
- ClickHouse:不对大整数和小数(如 UInt64 或 Decimal128)进行四舍五入,将空映射和数字键映射显示为对象
- ClickHouse:精确保存 Array、Map 和 Tuple 中的小数,支持键非 String 的 Map
- ClickHouse:不将 \b 转换为退格符(6.0.0 引入的回归问题)
- Editor:用第一个字符串列描述外键,而不仅限于 varchar
- Editor:缩短外键的长描述
插件
- 驱动插件:Driver::disconnect() 用于忘记已登录的用户
- 驱动插件:连接驱动自身协议的特权端口(ClickHouse、Elasticsearch、IMAP)
- 驱动插件:Driver::hasEstimatedRows() 仅在估算之后重新统计行数
- 驱动插件:Driver::md5() 用于缩短含长值的行链接
- 驱动插件:Driver::isSystem() 用于对系统数据库和 schema 进行分组
- 方法 namePattern() 可自定义新索引、外键、检查约束和触发器的名称
- 插件 igdb:改用 client secret 登录,而非手动获取的 access token
- 新插件 select-foreign:显示所引用行的第一个字符串列,而非外键值,与 Adminer Editor 一致
- 新插件 name-patterns:按你自己的约定命名新索引、外键、检查约束和触发器
https://www.adminer.org/#download
更新内容 (原始)
- Fix editing identity (PostgreSQL, Oracle, Firebird), rowversion (MS SQL), key (ClickHouse)
- Select: Fix modifying rows with a NULL value (uncompiled only, regression from 6.1.0)
- Edit: Do not round big numbers in json (MySQL) and jsonb (PostgreSQL) when saving the row (regression from 5.4.2)
- DB overview: Keep the table names on the screen when scrolling the list of tables horizontally
- Select: Keep the checkboxes on the screen when scrolling horizontally
- Select: Enable saving the modified values again after an error (regression from 6.0.0)
- Select: Highlight the searched text
- Select: Search anywhere by IS NULL and IS NOT NULL without a value
- Show documentation links as 📖, link it from the heading
- Menu: Group system databases and schemas
- Trigger: Name a new trigger with more events by all of them
- PDO: Preserve the exact value of double (bug #1214)
- PostgreSQL, MS SQL, Oracle: Do not highlight a valid date or time value as too long
- PostgreSQL: Alter the trigger function from table structure
- PostgreSQL: Do not highlight an array value as too long
- PostgreSQL: Fix renaming a column and making it a foreign key at the same time
- PostgreSQL: Export and alter the default values of enum and array columns (bug #1342)
- PostgreSQL: Edit the enum values containing an apostrophe
- PostgreSQL: Alter table: Offer and quote the user types with uppercase letters
- SQLite: Disallow ATTACH and VACUUM INTO prefixed by BOM (GHSA-r9r5-j5q8-8c59)
- SQLite: Deny writing files by an authorizer (PHP 8.0+, PDO PHP 8.5+)
- MS SQL: Export and alter the precision of datetime2, time and datetimeoffset
- MS SQL: Keep fractional seconds and the time zone offset when saving a row with the sqlsrv extension
- MS SQL Dblib: Display uniqueidentifier (bug #1339)
- MS SQL Dblib: Show the server version
- MS SQL Dblib: Fix creating generated columns and indexed views
- MS SQL Dblib: SQL command: Rollback an unfinished transaction
- Oracle: Treat SYS and SYSTEM as read-only
- Oracle: Support identity columns
- Oracle: Alter timestamp and interval columns, display their type without a duplicate precision
- ClickHouse: Offer the geometry types, Time and Time64, group the types as in the other drivers
- ClickHouse: Display the number of rows to a read-only user
- ClickHouse: Shorten the links to rows with a long string or geometry by its MD5 hash
- ClickHouse: Do not round big integers and decimals, e.g. UInt64 or Decimal128, display empty maps and maps with numeric keys as objects
- ClickHouse: Save the decimals in Array, Map and Tuple exactly, save a Map with other than String keys
- ClickHouse: Do not turn \b into a backspace (regression from 6.0.0)
- Editor: Describe foreign keys by the first string column, not only varchar
- Editor: Shorten long descriptions of foreign keys
Plugins
- Driver plugins: Driver::disconnect() to forget the logged user
- Driver plugins: Connect to the privileged ports of the driver’s own protocol (ClickHouse, Elasticsearch, IMAP)
- Driver plugins: Driver::hasEstimatedRows() to recount the rows only after an estimate
- Driver plugins: Driver::md5() to shorten the links to rows with a long value
- Driver plugins: Driver::isSystem() to group the system databases and schemas
- Method namePattern() to customize the names of new indexes, foreign keys, checks and triggers
- Plugin igdb: Log in by the client secret instead of an access token obtained manually
- New plugin select-foreign: Display the first string column of the referenced row instead of a foreign key value, same as in Adminer Editor
- New plugin name-patterns: Name new indexes, foreign keys, checks and triggers by your own convention
https://www.adminer.org/#download