@adecore/database

中文文档
0.57.0发布于 2026/11/08FSL-1.1-MITTypeScriptES Module构建来源已验证近 30 天下载 2万

浏览,查询并编辑 SQLite 和 MySQL 数据库: 页面的回放视图,后端的主机和向服务器说话的本地助手.

中文使用文档
文档目录7 节
  1. 安装
  2. 层
  3. 把它接起来
  4. 帮助二进制
  5. 在电子软件中
  6. 视图和测试
  7. 许可证

@adcore/数据库

npm Docs

从桌面应用程序浏览,查询和编辑 SQLite 和 MySQL 或 MariaDB 数据库. 反应视图绘制连接,一个表格树,一个表格的行,它的结构,一个创建和修改表格的设计者,一个查询控制台和一个将它们组合在一起的工作台. 在应用程序后端的宿主和一个与服务器交谈的本地助手做他们背后的工作.

每个视图的活演示文件

安装

bun add @adecore/database

@adecore/ui,反应19, react-dom, (中文(简体) ), i18next 财务报告和审定财务报表 react-i18next 是页面的相对关系。 东道主( E)@adecore/database/host和协议@adecore/database/protocol) 进口其中任何一种.

层

page            views, createDatabaseClient(transport)
  |
app channel     ipcMain.handle, a utility process, a WebSocket (the app's own, with its own sender check)
  |
backend         createDatabaseHost, spawnHelper          (Bun or Node)
  |
helper          adecore-database                         (native binary, one JSON message per line)
  |
server          SQLite file, MySQL or MariaDB

软件包不会在页面和后端之间携带信件. 应用确实如此,通过它已经和已经守护的频道.

把它接起来

在后端,每个应用程序创建一个主机,并将每个从频道到它的请求都交给它. 先检查发送者, 并指定请求的主人: 窗口, 套接字 。 当主人去后,释放出.

import { createDatabaseHost, spawnHelper } from '@adecore/database/host';

const host = createDatabaseHost({
    start: () => spawnHelper(helperPath),
    // Optional: turn down connections the page may not open.
    authorize: (connection) => connection.engine !== 'sqlite' || connection.path.startsWith(dataFolder),
    // Optional: the files the page may export to and import from. Every file is refused without it.
    authorizeFile: (path, access, owner) => isChosenInDialog(owner, access, path),
    // Optional: whether the page may list Docker containers. Refused without it.
    authorizeDiscovery: (kind, owner) => isTrusted(owner)
});

ipcMain.handle('database:request', (event, request) => {
    if (!isTrustedSender(event)) {
        throw new Error('Untrusted sender.');
    }

    return host.handle(request, String(event.sender.id));
});

app.on('web-contents-created', (_event, contents) => {
    const owner = String(contents.id);
    contents.once('destroyed', () => void host.release(owner));
});

在页面上,让一个客户端通过发送请求的传输返回回复,然后挂载 DatabaseProvider 内部 UIProvider数字 :

import { createDatabaseClient, DatabaseProvider, TableView } from '@adecore/database';

const client = createDatabaseClient((request) => window.database.request(request));

createRoot(root).render(
    <UIProvider i18n={i18next} formatSource={formatSource}>
        <DatabaseProvider client={client}>
            <TableView connection={connection} schema="main" table="customers" className="h-full" />
        </DatabaseProvider>
    </UIProvider>
);

A 类 Connection 实值 { id, name, config }。应用程序保存列表,密码在自己的安全存储中;软件包没有存储任何信息.

DatabaseProvider 亦取三可选钩入应用. 没有他们,观点就忽略了他们无法做的事情.

<DatabaseProvider
    client={client}
    onAction={(action) => openInTab(action)}
    storage={{ get: (key) => localStorage.getItem(key), set: (key, value) => (value === null ? localStorage.removeItem(key) : localStorage.setItem(key, value)) }}
    files={{ save: (options) => window.app.saveFile(options), open: (options) => window.app.openFile(options) }}
>

onAction 收到一个 DatabaseAction 当一个视图想要一个桌子,一个控制台或设计师打开,而应用程序决定它去向. storage 保留布局、控制台历史并打开重载标签. files 持有应用程序保存并打开导出和导入对话框 。 巢养的供养者从上面拿走它留下的东西 所以 <DatabaseProvider onAction={...}> 在一个标签上显示一个动作来自哪个标签.

告诉Tailwind扫描其课程的软件包,旁边是 @source 线条 @adecore/ui。路径相对 CSS 文件 :

@import 'tailwindcss';
@import '@adecore/ui/theme.css';

@source "../node_modules/@adecore/ui/dist";
@source "../node_modules/@adecore/database/dist";

这些话都生活在 database 命名空间,英语和荷兰语. DatabaseProvider 把它们添加到 i18 次例 UIProvider。 。 。 .

帮助二进制

助推器是握有数据库驱动器的Rust程序,因此崩溃驱动器无法将后端取下. 安装带来一个预建的: @adecore/database 将每个平台的软件包列出为可选依赖( )@adecore/database-darwin-arm64 对于苹果硅, -linux-x64, (中文(简体) ), -linux-arm64 财务报告和审定财务报表 -win32-x64),包管理器安装了适合机器的. helperPath() 返回路径,或 null 当平台没有软件包或可选的依赖关系时被忽略. ADECORE_DATABASE_HELPER 用另一座建筑的路径覆盖它.

import { createDatabaseHost, helperPath, spawnHelper } from '@adecore/database/host';

const path = helperPath();

if (path === null) {
    throw new Error('No prebuilt helper for this platform.');
}

const host = createDatabaseHost({ start: () => spawnHelper(path) });

Linux 二进制链接针对glibc 2.35 或更新. 一个需要自己建造的应用程序,为另一个平台或补丁帮助者,用这个文件夹中的货物来建造它,并将路径传递到 spawnHelper 相反:

cargo build --release --locked --manifest-path helper/Cargo.toml

二进制是 helper/target/release/adecore-database当软件包从 src ,例如通过 bun link,没有平台软件包有二进制, helperPath() 返回该构建.

在电子软件中

二进制不能从内部运行 app.asar 存档 . helperPath() 地图 app.asar 改为 app.asar.unpacked,所以应用程序解开平台软件包。 与电子建设器:

{
    "asarUnpack": ["node_modules/@adecore/database-*/**"]
}

或者复制二进制 extraResources 穿过这条路 spawnHelper,没有 helperPath()。无论哪一种方式,应用程序自己的代码签名和公证覆盖了二进制,所以与应用程序的其余部分一起签署已解开的文件. 一个从另一个机器为一个平台包装的应用程序需要安装在那里的目标平台的软件包.

视图和测试

观点是: ConnectionManager, (中文(简体) ), ConnectionForm, (中文(简体) ), DatabaseExplorer, (中文(简体) ), TableView, (中文(简体) ), StructureView, (中文(简体) ), TableDesigner, (中文(简体) ), QueryConsole 财务报告和审定财务报表 DatabaseWorkbench将探险家放在其他标签旁边 一个连接通过TCP,Unix socket,SSH主机或多克容器到达了MySQL或MariaDB. 文件 每个视图都有页面和连接、文件、安全和协议指南.

@adecore/database/testing 已经 fakeDatabaseTransport同一运输机后面的内存服务器,用于演示和应用程序的测试.

许可证

FSL-1.1-MIT,见 自由主义。 。 。 .

版本与发布记录

@adecore/database 共发布 159 个版本,首次发布于 2026/10/06;过去 12 个月发布了 159 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.57.0latest2026/11/08今天
0.56.42026/11/07今天
0.56.32026/11/07今天
0.56.22026/11/07今天
0.56.12026/11/07今天
0.56.02026/11/07今天

其他发布通道:next → 0.17.0-beta.2。

关于 @adecore/database 的常见问题

@adecore/database 是什么?

浏览,查询并编辑 SQLite 和 MySQL 数据库: 页面的回放视图,后端的主机和向服务器说话的本地助手.

如何安装 @adecore/database?

在项目目录运行 npm install @adecore/database,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.3.0)、i18next(^26.4.2)、react-dom(^19.3.0)、@adecore/ui(^0.57.0)、react-i18next(^17.0.15)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@adecore/database 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adecore/database 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adecore/database 可以商用吗?

@adecore/database 使用 FSL-1.1-MIT 许可。声明的许可为 FSL-1.1-MIT,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@adecore/database 的下载量有多少?

根据 npm 官方下载统计,@adecore/database 在 2026/10/05 – 2026/11/03 这 30 天内被下载 20,041 次,日均约 668 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adecore/database 还在维护吗?

最新版本 0.57.0 发布于 2026/11/08(今天);至今共发布 159 个版本,其中过去 12 个月发布了 159 个;首次发布于 2026/10/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。