REDB CLI
Управление базой данных из терминала. Инициализация схемы, экспорт и импорт данных.
dotnet tool install --global redb.CLI
Команды
$ redb init
Создать все таблицы, последовательности, функции и представления REDB в существующей пустой базе данных.
bash
# PostgreSQL
redb init -p postgres -c "Host=localhost;Database=mydb;Username=postgres;Password=pass"
# SQL Server
redb init -p mssql -c "Server=localhost;Database=mydb;User Id=sa;Password=pass;TrustServerCertificate=True"| Опция | Alias | Обяз. | Описание |
|---|---|---|---|
--provider | -p | Да | Провайдер БД: postgres, mssql |
--connection | -c | Да | Строка подключения ADO.NET |
--verbose | -v | Нет | Подробный вывод |
$ redb schema
Вывести полный SQL-скрипт инициализации в файл или stdout. Полезно для ревью DBA или CI/CD-пайплайнов.
bash
# Write to file
redb schema -p postgres -o redb_schema.sql
# Output to stdout
redb schema -p postgres
# Pipe to psql
redb schema -p postgres | psql -d mydb| Опция | Alias | Обяз. | Описание |
|---|---|---|---|
--provider | -p | Да | Провайдер БД: postgres, mssql |
--output | -o | Нет | Выходной файл. Без указания — вывод в stdout |
$ redb export
Экспортировать всю базу данных (или отдельные схемы) в файл .redb — формат JSONL, опционально сжатый.
bash
# Full export with compression
redb export -p postgres -c "Host=localhost;Database=redb;..." \
-o backup.redb --compress --batch-size 100000 -v
# Export specific schemes only
redb export -p postgres -c "..." -o partial.redb --schemes 100,200
# Dry run
redb export -p postgres -c "..." -o test.redb --dry-run| Опция | Alias | Обяз. | Описание |
|---|---|---|---|
--provider | -p | Да | Провайдер БД |
--connection | -c | Да | Строка подключения |
--output | -o | Да | Путь к выходному файлу (.redb) |
--compress | Нет | Сжать вывод ZIP | |
--schemes | Нет | ID схем для экспорта (через запятую) | |
--batch-size | Нет | Размер батча (по умолчанию: 1000) | |
--dry-run | Нет | Предварительный просмотр без выполнения | |
--verbose | -v | Нет | Подробный вывод |
$ redb import
Импортировать данные из файла .redb в базу данных.
bash
# Import with clean (truncates tables first)
redb import -p postgres -c "Host=localhost;Database=redb;..." \
-i backup.redb --clean -v --batch-size 100000
# Dry run
redb import -p mssql -c "..." -i backup.redb --dry-run| Опция | Alias | Обяз. | Описание |
|---|---|---|---|
--provider | -p | Да | Провайдер БД |
--connection | -c | Да | Строка подключения |
--input | -i | Да | Путь к входному файлу (.redb) |
--clean | Нет | Очистить все таблицы REDB перед импортом | |
--batch-size | Нет | Размер батча для bulk insert (по умолчанию: 1000) | |
--dry-run | Нет | Предварительный просмотр без выполнения | |
--verbose | -v | Нет | Подробный вывод |
Поддерживаемые провайдеры
| Провайдер | Aliases | Пример строки подключения |
|---|---|---|
| PostgreSQL | postgres, postgresql, pgsql |
Host=localhost;Port=5432;Database=redb;Username=postgres;Password=pass |
| SQL Server | mssql, sqlserver |
Server=localhost;Database=redb;User Id=sa;Password=pass;TrustServerCertificate=True |
Типичные сценарии
Настройка нового проекта
bash
# 1. Create database
createdb myapp
# 2. Initialize REDB schema
redb init -p postgres -c "Host=localhost;Database=myapp;Username=postgres;Password=pass" -v
# 3. Run your application
dotnet run --project MyAppМиграция между базами (Postgres → MSSQL)
bash
# 1. Export from PostgreSQL
redb export -p postgres -c "Host=src;Database=redb;..." -o data.redb --compress -v
# 2. Init schema in SQL Server
redb init -p mssql -c "Server=dst;Database=redb;..." -v
# 3. Import into SQL Server
redb import -p mssql -c "Server=dst;Database=redb;..." -i data.redb --clean -vBackup и восстановление
bash
# Backup
redb export -p postgres -c "..." -o backup_2026-02-13.redb --compress
# Restore
redb import -p postgres -c "..." -i backup_2026-02-13.redb --clean -vДоступно и из кода
Все операции CLI также доступны программно через IRedbService:
csharp
// A: Auto-create on startup (recommended)
await redb.InitializeAsync(ensureCreated: true);
// B: Explicit call
await redb.EnsureDatabaseAsync();
await redb.InitializeAsync();
// C: Export SQL for DBA review
var sql = redb.GetSchemaScript();
File.WriteAllText("redb_schema.sql", sql);