db

db 记住一个已安装的数据库驱动,并把统一的短命令转发给它,同时保留数据库引擎自己的原生语言。

数据库版本 1.3.3稳定
lil-terminal

概览

db 作为已安装数据库驱动的会话级短镜像:只需选择一次 MySQL/MariaDB、PostgreSQL、Redis、SQLite 或 MongoDB,之后就用同一个短前缀完成检查、导出、备份和原生命令。

一个前缀,不同数据库引擎

db 是已安装数据库驱动的统一入口,本身不是新的数据库引擎。它记住当前选择的驱动并提供各驱动共有的操作,而 : 后面的内容仍使用数据库自身的语言。这样可以缩短日常操作,又不会把 SQL、Redis 数据结构和 MongoDB 文档混成同一种模型。

语法

lil-terminal
db [driver] [options]

参考

db

显示当前选择的数据库驱动和已安装驱动

db <driver>

选择驱动:mysql|postgresql|redis|sqlite|mongodb

-c ...

通过已选择的驱动连接

-use ...

通过已选择的驱动选择数据库

-l

通过已选择的驱动列出数据库或命名空间

-t

通过已选择的驱动列出表、集合或键

-s <name>

通过已选择的驱动显示结构

-n <name> [rows]

通过已选择的驱动预览记录

-f <name> <text>

通过已选择的驱动搜索

-o <name> ...

通过已选择的驱动导出

-a ...

通过所选驱动添加数据

-w ...

通过所选驱动更新数据

-d ...

通过所选驱动删除数据

-m [name]

通过当前驱动保存连接

-M <name>

删除当前驱动的已保存连接

-k [name]

列出或检查当前驱动的已保存连接

-K <name>

使用当前驱动的已保存连接进行连接

-e

断开已选择的驱动

db : <native>

执行已选择驱动的原生命令或查询

db dump ...

通过已选择的驱动创建转储

db load <file>

通过已选择的驱动载入转储或脚本

工作方式

常用形式都列在本地命令参考中。快捷操作负责检查和小范围修改;高级操作始终可以回到对应数据库的原生语法。

备份与恢复

dump/load 的格式由驱动决定。若需要覆盖数据库全部能力的完整备份,请使用服务器侧的原生备份工具。

安全

密码通过隐藏输入框提供,不会写入命令历史。生产环境应尽量使用权限受限的数据库账户。

通用镜像还会把 -a-w-d 转发给所选驱动,用于定向添加、更新和删除;具体参数仍由各驱动定义。

已保存的连接

未使用 -m 时,连接数据只保留在当前 PHP 会话中。-m [name] 会明确把配置保存到受保护的 .lil.key 文件(0600),-K <name> 使用它重新连接,-k 可列出或检查配置但不会泄露已保存的密码,-M <name> 删除一个配置。kill 会与其他核心状态一起删除 .lil.key。请把该文件视为敏感文件,因为主动保存的配置可能包含数据库凭据。

交互式 sandbox 预览

可直接在页面中运行预先准备的示例。结果已预先生成并在浏览器中显示;服务器不会执行任何终端命令。

选择 SQLite 并检查一张表

安装与管理

安装当前兼容版本。完整功能请选择 Base,精简包请选择 Minimum;已安装模块的更新请使用 upgrade。

Base 与 Minimum 是同一当前模块版本的两个包。

Base 包

安装包含本地参考和全部已发布模式的完整包。

install db
Minimum 包

安装精简包。该包不包含本地参考;help <cmd> -i 会打开当前服务器参考。

install db -m
精确公开版本

安装这个确切的已发布版本。

install db -v 1.3.3
检查或升级

让 upgrade 检查兼容性,仅在需要时替换已安装块。

upgrade db
删除模块

删除扩展块,不影响核心和其他模块。

install db -u

示例

示例可复制,但网站不会执行。请先检查路径、权限和破坏性选项。

选择 SQLite 并检查一张表
db sqlite | db -c \sandbox\db\shop.sqlite | db -t | db -n products 5
Driver      sqlite
Status      selected

Status      connected
File        sandbox/db/shop.sqlite

products
orders

id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.9	1
2	SHOE-2	Trail shoe	shoes	109	1
3	BAG-1	Canvas bag	bags	44.5	1
Db · 02
db
Driver      sqlite
SQLite      installed · selected
MySQL       installed
PostgreSQL  not installed
Redis       not installed
MongoDB     not installed
Db · mysql
db mysql
Driver  mysql
Status  selected
Engine  MySQL / MariaDB
Db · mariadb
db mariadb
Driver  mysql
Status  selected
Engine  MySQL / MariaDB
Db · products
db -s products
Field     Type       Null  Key
id        INTEGER    no    PRIMARY
sku       TEXT       no    UNIQUE
name      TEXT       no
category  TEXT       no
price     REAL       no
active    INTEGER    no
Db · products
db -f products "shoe"
id	sku	name	category	price
1	SHOE-1	City shoe	shoes	79.9
2	SHOE-2	Trail shoe	shoes	109
Db · products
db -o products -j products.json
Saved  products.json
Db · products
db -a products : {"sku":"TMP-1","name":"Temporary","price":1}
Inserted  1
ID        5
Db · products
db -w products sku TMP-1 : {"price":2}
Updated  1
Db · products
db -d products sku TMP-1
Deleted  1
Db · select
db : SELECT COUNT(*) AS products FROM products
products
4
Db · dump
db dump backup.sql
Saved  backup.sql
Db · -e
db -e
+
拒绝不支持的驱动
db oracle
未知数据库驱动:oracle

本示例使用的文件: sandbox/db/sqlite.sql

该示例使用受保护的 /sandbox/ 文档工作区中的文件或目录。

CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  sku TEXT UNIQUE NOT NULL,
  name TEXT NOT NULL,
  category TEXT NOT NULL,
  price REAL NOT NULL,
  active INTEGER NOT NULL DEFAULT 1
);
INSERT INTO products (sku,name,category,price,active) VALUES
('SHOE-1','City shoe','shoes',79.90,1),
('SHOE-2','Trail shoe','shoes',109.00,1),
('BAG-1','Canvas bag','bags',44.50,1);

相关文档

当前公开版本

v1.3.32026-08-08

紧凑的数据库门面

归组通用选项、转发连接记忆操作,并用紧凑列显示驱动状态。