db

db запоминает выбранный установленный драйвер и передаёт ему единый короткий набор действий, не переводя нативный язык самой базы.

База данныхВерсия 1.3.4Стабильная
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>

загрузить дамп или сценарий через выбранный драйвер

Зачем нужна команда

db — не отдельная база данных, а удобный общий вход к установленным драйверам. Для базы в одном файле выбирайте db sqlite, а для сервера MySQL/MariaDB — db mysql. Сам db не преобразует SQL в команды Redis или MongoDB: он передаёт запрос выбранному модулю. Прямые команды sqlite и mysql продолжают работать независимо.

Как пользоваться

Сначала выберите драйвер, затем подключитесь: db sqlite -c \sandbox\db\shop.sqlite. Команда db -t покажет таблицы, db -n products 2 — две строки, db -f products "shoe" — результаты поиска. После db : пишется язык конкретной базы, например SQL для SQLite. db mariadb выбирает модуль mysql, но отсутствующие драйверы не устанавливает.

Ограничения и безопасность

Без -m выбор драйвера и подключение живут в текущей PHP-сессии. -m [name] по желанию сохраняет профиль в .lil.key, где могут находиться и пароли; -k просматривает профили, -K подключается повторно, -M удаляет запись. Перед -a/-w/-d, load и нативными запросами делайте резервную копию. Для работы нужны установленный модуль и соответствующее расширение PHP. Все примеры — учебные, не обращения к базе посетителя.

Интерактивный пример из `/sandbox/`

Запускайте подготовленные примеры прямо на странице. Результат заранее сформирован и показывается в браузере; команды терминала на сервере не выполняются.

Выбрать SQLite и посмотреть таблицу

Установка и управление

Устанавливайте актуальную совместимую версию. Для полного набора возможностей выбирайте Base, для сокращённого — Minimum; уже установленный модуль обновляет команда upgrade.

Base и Minimum — два пакета одного текущего релиза модуля, а не разные версии команды.

Пакет Base

Установить полный пакет с локальной справкой и всеми опубликованными режимами.

install db
Пакет Minimum

Установить сокращённый пакет без локальной справки; help <cmd> -i открывает актуальную серверную справку.

install db -m
Точная публичная версия

Установить именно эту опубликованную версию.

install db -v 1.3.4
Проверить или обновить

Поручить upgrade проверить совместимость и заменить установленный блок только при необходимости.

upgrade db
Удалить модуль

Удалить блок расширения, не затрагивая ядро и остальные модули.

install db -u

Примеры

Примеры можно копировать, но сайт их не выполняет. Перед запуском на реальном проекте проверьте пути, права и разрушающие флаги.

Выбрать SQLite и посмотреть таблицу
db
No database driver selected
mysql       MySQL / MariaDB · installed
postgresql  PostgreSQL · installed
redis       Redis · installed
sqlite      SQLite · installed
mongodb     MongoDB · installed
Выбрать драйвер: mysql|postgresql|redis|sqlite|mongodb
db sqlite
Database driver selected: sqlite
Выбрать драйвер: mysql|postgresql|redis|sqlite|mongodb
db mariadb
Database driver selected: mysql
Выбрать драйвер: mysql|postgresql|redis|sqlite|mongodb
db oracle
Unknown database driver: oracle
Подключиться через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite
Status  connected
File    sandbox/db/shop.sqlite
SQLite  (version depends on the host)
Выбрать базу данных через выбранный драйвер
db sqlite -use \sandbox\db\shop.sqlite
Status  connected
File    sandbox/db/shop.sqlite
SQLite  (version depends on the host)
Показать таблицы, коллекции или ключи через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -t
name	type
orders	table
products	table
Показать структуру через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -s products
cid	name	type	notnull	dflt_value	pk
0	id	INTEGER	0	NULL	1
1	sku	TEXT	1	NULL	0
2	name	TEXT	1	NULL	0
3	category	TEXT	1	NULL	0
4	price	REAL	1	NULL	0
5	active	INTEGER	1	1	0
Показать несколько записей через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -n products 2
id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.9	1
2	SHOE-2	Trail shoe	shoes	109.0	1
Найти данные через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -f products "shoe"
id	sku	name	category	price	active
1	SHOE-1	City shoe	shoes	79.9	1
2	SHOE-2	Trail shoe	shoes	109.0	1
Показать базы данных или пространства имён через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -l
seq	name	file
0	main	sandbox/db/shop.sqlite
Выполнить нативный запрос или команду выбранного драйвера
db sqlite -c \sandbox\db\shop.sqlite | db : SELECT COUNT(*) AS total FROM products
total
4
Time  (varies) ms
Выгрузить данные через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -o products -j
[
  {
    "id": 1,
    "sku": "SHOE-1",
    "name": "City shoe",
    "category": "shoes",
    "price": 79.9,
    "active": 1
  },
  {
    "id": 2,
    "sku": "SHOE-2",
    "name": "Trail shoe",
    "category": "shoes",
    "price": 109.0,
    "active": 1
  },
  {
    "id": 3,
    "sku": "BAG-1",
    "name": "Canvas bag",
    "category": "bags",
    "price": 44.5,
    "active": 1
  },
  {
    "id": 4,
    "sku": "HAT-1",
    "name": "Summer hat",
    "category": "accessories",
    "price": 25.0,
    "active": 0
  }
]
Отклонить неподдерживаемый драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -a products : {"sku":"NEW-1","name":"Sample","category":"test","price":5,"active":1}
Inserted  1
ID        5
Обновить данные через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -w products sku HAT-1 : {"price":24}
Updated  1
Удалить данные через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -d products sku HAT-1
Deleted  1
Сохранить текущее подключение выбранного драйвера
db sqlite -c \sandbox\db\shop.sqlite | db -m demo
Saved  demo
Показать сохранённые подключения выбранного драйвера или сведения об одном
db sqlite -k
No saved connections
Подключиться через сохранённое подключение выбранного драйвера
db sqlite -K absent
Saved connection not found: absent
Удалить сохранённое подключение выбранного драйвера
db sqlite -M absent
Saved connection not found: absent
Отключить выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db -e
+
Создать дамп через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db dump tmp/sample-db.sql
Saved  sandbox/tmp/sample-db.sql
Загрузить дамп или сценарий через выбранный драйвер
db sqlite -c \sandbox\db\shop.sqlite | db load db/sqlite.sql
SQLite error: table products already exists

Файл из примера: 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.42026-11-01

Производственная доработка

Актуальная стабильная версия db. db запоминает выбранный установленный драйвер и передаёт ему единый короткий набор действий, не переводя нативный язык самой базы.