Update README.md
This commit is contained in:
196
README.md
196
README.md
@@ -16,7 +16,7 @@
|
||||
</a>
|
||||
|
||||
<p align="center">
|
||||
<h3> <b>Futriis-это легковесная, распределённая wait-free и lock-free дружественная in-memory СУБД,
|
||||
<h3> <b>futriix-это легковесная, распределённая wait-free и lock-free дружественная in-memory СУБД,
|
||||
реализованная на Go с поддержкой плагинов на языке lua для операционных систем на базе Solaris (ядра Illumos)</b> <br></h3>
|
||||
<br />
|
||||
<br />
|
||||
@@ -26,7 +26,7 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Краткая документация проекта FutriiS
|
||||
## Краткая документация проекта futriix
|
||||
|
||||
<!-- TABLE OF CONTENTS -->
|
||||
<br>
|
||||
@@ -63,7 +63,7 @@
|
||||
> [!CAUTION]
|
||||
> **ALPHA VERSION**<br><br>**Категорически не использовать в продакшене, так как это экспериментальная версия!!!**
|
||||
|
||||
futriis - это легковесная, распределённая, использующая алгоритмы неблокирующей синхронизации - `wait-free` и `lock-free` in-memory СУБД, реализованная на языке Go с поддержкой плагинов на языке lua использующая алгоритм консенсуса Raft.
|
||||
futriix - это легковесная, распределённая, использующая алгоритмы неблокирующей синхронизации - `wait-free` и `lock-free` in-memory СУБД, реализованная на языке Go с поддержкой плагинов на языке lua использующая алгоритм консенсуса Raft.
|
||||
Данная субд была разработана, в первую очередь для эксплуатации в операционных системах на базе ядра Illumos и операционной системы Solaris: OpenIndiana Hipster, Oracle Solaris в замкнутых программных средах.
|
||||
Но также она совместима с популярными Linux-дистрибутивами (Debian,Ubuntu,Fedora), т.е. операционными системами построенными на базе ядра Linux.
|
||||
|
||||
@@ -127,8 +127,8 @@ futriis - это легковесная, распределённая, испо
|
||||
1. Клонируйте репозиторий:
|
||||
|
||||
```bash
|
||||
$ git clone https://github.com/futriis/db.git
|
||||
$ cd futriis
|
||||
$ git clone https://github.com/futriix/db.git
|
||||
$ cd futriix
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
@@ -166,7 +166,7 @@ $ ./build_illumos.sh
|
||||
# Показать справку
|
||||
$./build.sh --help
|
||||
|
||||
$ ./futriis
|
||||
$ ./futriix
|
||||
```
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
|
||||
@@ -214,28 +214,28 @@ done
|
||||
|
||||
```sh
|
||||
# Создание новой базы данных
|
||||
futriiS:~> create database company
|
||||
futriix:~> create database company
|
||||
✓ Database 'company' created
|
||||
|
||||
futriiS:~> create database shop
|
||||
futriix:~> create database shop
|
||||
✓ Database 'shop' created
|
||||
|
||||
# Переключение на базу данных
|
||||
futriiS:~> use company
|
||||
futriix:~> use company
|
||||
✓ Switched to database 'company'
|
||||
|
||||
futriiS:~> use shop
|
||||
futriix:~> use shop
|
||||
✓ Switched to database 'shop'
|
||||
|
||||
# Просмотр всех баз данных
|
||||
futriiS:~> show databases
|
||||
futriix:~> show databases
|
||||
Databases:
|
||||
company
|
||||
* shop
|
||||
test
|
||||
|
||||
# Удаление базы данных
|
||||
futriiS:~> drop database test
|
||||
futriix:~> drop database test
|
||||
✓ Database 'test' dropped
|
||||
```
|
||||
|
||||
@@ -245,70 +245,70 @@ futriiS:~> drop database test
|
||||
|
||||
```sh
|
||||
# Создание новой базы данных
|
||||
futriiS:~> create database company
|
||||
futriix:~> create database company
|
||||
✓ Database 'company' created
|
||||
|
||||
futriiS:~> create database shop
|
||||
futriix:~> create database shop
|
||||
✓ Database 'shop' created
|
||||
|
||||
# Переключение на базу данных
|
||||
futriiS:~> use company
|
||||
futriix:~> use company
|
||||
✓ Switched to database 'company'
|
||||
|
||||
futriiS:~> use shop
|
||||
futriix:~> use shop
|
||||
✓ Switched to database 'shop'
|
||||
|
||||
# Просмотр всех баз данных
|
||||
futriiS:~> show databases
|
||||
futriix:~> show databases
|
||||
Databases:
|
||||
company
|
||||
* shop
|
||||
test
|
||||
|
||||
# Удаление базы данных
|
||||
futriiS:~> drop database test
|
||||
futriix:~> drop database test
|
||||
✓ Database 'test' dropped
|
||||
```
|
||||
```sh
|
||||
# Создание коллекции
|
||||
futriiS:~> use company
|
||||
futriix:~> use company
|
||||
✓ Switched to database 'company'
|
||||
|
||||
futriiS:~> create collection employees
|
||||
futriix:~> create collection employees
|
||||
✓ Collection 'employees' created in database 'company'
|
||||
|
||||
futriiS:~> create collection departments
|
||||
futriix:~> create collection departments
|
||||
✓ Collection 'departments' created in database 'company'
|
||||
|
||||
futriiS:~> create collection projects
|
||||
futriix:~> create collection projects
|
||||
✓ Collection 'projects' created in database 'company'
|
||||
|
||||
# Просмотр всех коллекций
|
||||
futriiS:~> show collections
|
||||
futriix:~> show collections
|
||||
Collections in database 'company':
|
||||
- employees
|
||||
- departments
|
||||
- projects
|
||||
|
||||
# Удаление коллекции
|
||||
futriiS:~> drop collection projects
|
||||
futriix:~> drop collection projects
|
||||
✓ Collection 'projects' dropped from database 'company'
|
||||
|
||||
```
|
||||
|
||||
```sh
|
||||
# Вставка документа (простой формат key=value)
|
||||
futriiS:~> insert employees name=John Doe,position=Developer,age=30,department=IT
|
||||
futriix:~> insert employees name=John Doe,position=Developer,age=30,department=IT
|
||||
✓ Document inserted with ID: 550e8400-e29b-41d4-a716-446655440000
|
||||
|
||||
futriiS:~> insert employees name=Jane Smith,position=Manager,age=35,department=HR
|
||||
futriix:~> insert employees name=Jane Smith,position=Manager,age=35,department=HR
|
||||
✓ Document inserted with ID: 550e8400-e29b-41d4-a716-446655440001
|
||||
|
||||
futriiS:~> insert employees name=Bob Johnson,position=Designer,age=28,department=Design
|
||||
futriix:~> insert employees name=Bob Johnson,position=Designer,age=28,department=Design
|
||||
✓ Document inserted with ID: 550e8400-e29b-41d4-a716-446655440002
|
||||
|
||||
# Поиск документа по ID
|
||||
futriiS:~> find employees 550e8400-e29b-41d4-a716-446655440000
|
||||
futriix:~> find employees 550e8400-e29b-41d4-a716-446655440000
|
||||
Document found:
|
||||
{
|
||||
"name": "John Doe",
|
||||
@@ -318,7 +318,7 @@ Document found:
|
||||
}
|
||||
|
||||
# Поиск по индексу
|
||||
futriiS:~> findbyindex employees name_idx "John Doe"
|
||||
futriix:~> findbyindex employees name_idx "John Doe"
|
||||
Found 1 document(s):
|
||||
[1] ID: 550e8400-e29b-41d4-a716-446655440000
|
||||
{
|
||||
@@ -329,18 +329,18 @@ Found 1 document(s):
|
||||
}
|
||||
|
||||
# Обновление документа
|
||||
futriiS:~> update employees 550e8400-e29b-41d4-a716-446655440000 age=31,position=Senior Developer
|
||||
futriix:~> update employees 550e8400-e29b-41d4-a716-446655440000 age=31,position=Senior Developer
|
||||
✓ Document '550e8400-e29b-41d4-a716-446655440000' updated
|
||||
|
||||
# Подсчёт количества документов
|
||||
futriiS:~> count employees
|
||||
futriix:~> count employees
|
||||
Collection 'employees' has 3 document(s)
|
||||
|
||||
# Удаление документа
|
||||
futriiS:~> delete employees 550e8400-e29b-41d4-a716-446655440002
|
||||
futriix:~> delete employees 550e8400-e29b-41d4-a716-446655440002
|
||||
✓ Document '550e8400-e29b-41d4-a716-446655440002' deleted
|
||||
|
||||
futriiS:~> count employees
|
||||
futriix:~> count employees
|
||||
Collection 'employees' has 2 document(s)
|
||||
|
||||
```
|
||||
@@ -351,19 +351,19 @@ Collection 'employees' has 2 document(s)
|
||||
|
||||
```sh
|
||||
# Создание обычного индекса
|
||||
futriiS:~> create index employees name_idx name
|
||||
futriix:~> create index employees name_idx name
|
||||
✓ Index 'name_idx' created on collection 'employees'
|
||||
|
||||
# Создание уникального индекса
|
||||
futriiS:~> create index employees email_idx email unique
|
||||
futriix:~> create index employees email_idx email unique
|
||||
✓ Index 'email_idx' created on collection 'employees'
|
||||
|
||||
# Создание составного индекса
|
||||
futriiS:~> create index employees dept_age_idx department,age
|
||||
futriix:~> create index employees dept_age_idx department,age
|
||||
✓ Index 'dept_age_idx' created on collection 'employees'
|
||||
|
||||
# Просмотр всех индексов
|
||||
futriiS:~> show indexes employees
|
||||
futriix:~> show indexes employees
|
||||
Indexes on collection 'employees':
|
||||
- _id_
|
||||
- name_idx
|
||||
@@ -371,7 +371,7 @@ Indexes on collection 'employees':
|
||||
- dept_age_idx
|
||||
|
||||
# Удаление индекса
|
||||
futriiS:~> drop index employees dept_age_idx
|
||||
futriix:~> drop index employees dept_age_idx
|
||||
✓ Index 'dept_age_idx' dropped from collection 'employees'
|
||||
```
|
||||
|
||||
@@ -381,32 +381,32 @@ futriiS:~> drop index employees dept_age_idx
|
||||
|
||||
```sh
|
||||
# Начало сессии
|
||||
futriiS:~> db.startSession()
|
||||
futriix:~> db.startSession()
|
||||
✓ Session started: session_12345
|
||||
|
||||
# Начало транзакции в рамках сессии
|
||||
futriiS:~> session.startTransaction()
|
||||
futriix:~> session.startTransaction()
|
||||
✓ Transaction started: TX_67890
|
||||
|
||||
# Выполнение операций в транзакции
|
||||
futriiS:~> insert employees name=New User,position=Trainee,age=22
|
||||
futriix:~> insert employees name=New User,position=Trainee,age=22
|
||||
✓ Document inserted with ID: 550e8400-e29b-41d4-a716-446655440005
|
||||
|
||||
futriiS:~> update employees 550e8400-e29b-41d4-a716-446655440005 status=active
|
||||
futriix:~> update employees 550e8400-e29b-41d4-a716-446655440005 status=active
|
||||
✓ Document '550e8400-e29b-41d4-a716-446655440005' updated
|
||||
|
||||
# Подтверждение транзакции
|
||||
futriiS:~> session.commitTransaction()
|
||||
futriix:~> session.commitTransaction()
|
||||
✓ Transaction committed successfully
|
||||
|
||||
# Откат транзакции (при ошибке)
|
||||
futriiS:~> session.startTransaction()
|
||||
futriix:~> session.startTransaction()
|
||||
✓ Transaction started: TX_67891
|
||||
|
||||
futriiS:~> insert employees name=Test User,position=Test,age=25
|
||||
futriix:~> insert employees name=Test User,position=Test,age=25
|
||||
✓ Document inserted with ID: 550e8400-e29b-41d4-a716-446655440006
|
||||
|
||||
futriiS:~> session.abortTransaction()
|
||||
futriix:~> session.abortTransaction()
|
||||
✓ Transaction aborted, changes rolled back
|
||||
```
|
||||
|
||||
@@ -417,7 +417,7 @@ futriiS:~> session.abortTransaction()
|
||||
|
||||
```sh
|
||||
# Просмотр статуса кластера
|
||||
futriiS:~> status
|
||||
futriix:~> status
|
||||
=== Cluster Status ===
|
||||
✓ Role: LEADER
|
||||
Cluster Name: production
|
||||
@@ -425,7 +425,7 @@ futriiS:~> status
|
||||
Raft Port: 7000
|
||||
|
||||
# В режиме follower
|
||||
futriiS:~> status
|
||||
futriix:~> status
|
||||
=== Cluster Status ===
|
||||
⚠ Role: FOLLOWER
|
||||
Cluster Name: production
|
||||
@@ -433,7 +433,7 @@ futriiS:~> status
|
||||
Raft Port: 7000
|
||||
|
||||
# Просмотр всех узлов кластера
|
||||
futriiS:~> nodes
|
||||
futriix:~> nodes
|
||||
=== Cluster Nodes ===
|
||||
* 192.168.1.100:8080
|
||||
192.168.1.101:8080
|
||||
@@ -446,23 +446,23 @@ futriiS:~> nodes
|
||||
|
||||
```sh
|
||||
# Добавление обязательного поля
|
||||
futriiS:~> add required employees email
|
||||
futriix:~> add required employees email
|
||||
✓ Required field 'email' added to collection 'employees'
|
||||
|
||||
# Добавление ограничения уникальности
|
||||
futriiS:~> add unique employees phone
|
||||
futriix:~> add unique employees phone
|
||||
✓ Unique constraint added for field 'phone' on collection 'employees'
|
||||
|
||||
# Добавление минимального значения
|
||||
futriiS:~> add min employees age 18
|
||||
futriix:~> add min employees age 18
|
||||
✓ Min constraint added for field 'age' on collection 'employees' (min: 18.00)
|
||||
|
||||
# Добавление максимального значения
|
||||
futriiS:~> add max employees age 65
|
||||
futriix:~> add max employees age 65
|
||||
✓ Max constraint added for field 'age' on collection 'employees' (max: 65.00)
|
||||
|
||||
# Добавление enum-ограничения (допустимые значения)
|
||||
futriiS:~> add enum employees status active,inactive,on_leave
|
||||
futriix:~> add enum employees status active,inactive,on_leave
|
||||
✓ Enum constraint added for field 'status' on collection 'employees' (allowed: [active inactive on_leave])
|
||||
```
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
@@ -472,15 +472,15 @@ futriiS:~> add enum employees status active,inactive,on_leave
|
||||
|
||||
```sh
|
||||
# Экспорт базы данных в файл MessagePack
|
||||
futriiS:~> export "company" "company_backup.msgpack"
|
||||
futriix:~> export "company" "company_backup.msgpack"
|
||||
✓ Database 'company' exported to company_backup.msgpack
|
||||
|
||||
# Экспорт с автоматическим добавлением расширения
|
||||
futriiS:~> export "shop" "shop_backup"
|
||||
futriix:~> export "shop" "shop_backup"
|
||||
✓ Database 'shop' exported to shop_backup.msgpack
|
||||
|
||||
# Импорт базы данных из файла
|
||||
futriiS:~> import "company" "company_backup.msgpack"
|
||||
futriix:~> import "company" "company_backup.msgpack"
|
||||
Importing data from company_backup.msgpack to database 'company'...
|
||||
✓ Database 'company' imported successfully from company_backup.msgpack
|
||||
Collections imported: 2
|
||||
@@ -489,7 +489,7 @@ Importing data from company_backup.msgpack to database 'company'...
|
||||
Documents failed: 0
|
||||
|
||||
# Импорт в новую базу данных
|
||||
futriiS:~> import "company_restore" "company_backup.msgpack"
|
||||
futriix:~> import "company_restore" "company_backup.msgpack"
|
||||
Created database 'company_restore'
|
||||
✓ Database 'company_restore' imported successfully from company_backup.msgpack
|
||||
Collections imported: 2
|
||||
@@ -502,7 +502,7 @@ Created database 'company_restore'
|
||||
|
||||
```sh
|
||||
# Просмотр информации о системе плагинов
|
||||
futriiS:~> plugin status
|
||||
futriix:~> plugin status
|
||||
=== Plugin System Status ===
|
||||
Enabled: true
|
||||
Plugins Directory: ./plugins
|
||||
@@ -510,7 +510,7 @@ futriiS:~> plugin status
|
||||
Total Executions: 125
|
||||
|
||||
# Список загруженных плагинов
|
||||
futriiS:~> plugin list
|
||||
futriix:~> plugin list
|
||||
=== Loaded Plugins ===
|
||||
validation (v1.0.0) by admin - Document validation rules
|
||||
Status: RUNNING
|
||||
@@ -520,21 +520,21 @@ futriiS:~> plugin list
|
||||
Status: RUNNING
|
||||
|
||||
# Загрузка плагина из файла
|
||||
futriiS:~> plugin load email_notifier ./plugins/email_notifier.lua
|
||||
futriix:~> plugin load email_notifier ./plugins/email_notifier.lua
|
||||
✓ Plugin 'email_notifier' loaded successfully
|
||||
Version: 1.0.0
|
||||
Author: admin
|
||||
Description: Send email notifications on database events
|
||||
|
||||
# Запуск/остановка плагина
|
||||
futriiS:~> plugin start email_notifier
|
||||
futriix:~> plugin start email_notifier
|
||||
✓ Plugin 'email_notifier' started
|
||||
|
||||
futriiS:~> plugin stop email_notifier
|
||||
futriix:~> plugin stop email_notifier
|
||||
✓ Plugin 'email_notifier' stopped
|
||||
|
||||
# Выгрузка плагина
|
||||
futriiS:~> plugin unload email_notifier
|
||||
futriix:~> plugin unload email_notifier
|
||||
✓ Plugin 'email_notifier' unloaded
|
||||
```
|
||||
|
||||
@@ -641,39 +641,39 @@ end
|
||||
|
||||
```sh
|
||||
# Создание базы данных и коллекции
|
||||
futriiS:~> create database company
|
||||
futriix:~> create database company
|
||||
✓ Database 'company' created
|
||||
|
||||
futriiS:~> use company
|
||||
futriix:~> use company
|
||||
✓ Switched to database 'company'
|
||||
|
||||
futriiS:~> create collection employees
|
||||
futriix:~> create collection employees
|
||||
✓ Collection 'employees' created in database 'company'
|
||||
|
||||
# Загрузка и запуск плагина валидации
|
||||
futriiS:~> plugin load validation ./plugins/validation.lua
|
||||
futriix:~> plugin load validation ./plugins/validation.lua
|
||||
✓ Plugin 'validation' loaded successfully
|
||||
Version: 1.0.0
|
||||
Author: admin
|
||||
Description: Document validation rules for employees collection
|
||||
|
||||
futriiS:~> plugin start validation
|
||||
futriix:~> plugin start validation
|
||||
✓ Plugin 'validation' started
|
||||
|
||||
# Вставка валидного документа
|
||||
futriiS:~> insert employees name=John Doe,age=25,email=john@company.com,salary=45000
|
||||
futriix:~> insert employees name=John Doe,age=25,email=john@company.com,salary=45000
|
||||
✓ Document inserted with ID: emp_001
|
||||
|
||||
# Вставка невалидного документа (возраст < 18)
|
||||
futriiS:~> insert employees name=Jane Smith,age=16,email=jane@company.com,salary=20000
|
||||
futriix:~> insert employees name=Jane Smith,age=16,email=jane@company.com,salary=20000
|
||||
Error: Employee must be at least 18 years old
|
||||
|
||||
# Вставка невалидного документа (некорректный email)
|
||||
futriiS:~> insert employees name=Bob Johnson,age=30,email=invalid-email,salary=50000
|
||||
futriix:~> insert employees name=Bob Johnson,age=30,email=invalid-email,salary=50000
|
||||
Error: Invalid email format
|
||||
|
||||
# Выполнение пользовательской функции плагина
|
||||
futriiS:~> plugin call validation validate_collection employees
|
||||
futriix:~> plugin call validation validate_collection employees
|
||||
✓ Function returned: 0
|
||||
```
|
||||
|
||||
@@ -707,30 +707,30 @@ curl -X POST http://localhost:8080/api/plugin/call \
|
||||
|
||||
```sh
|
||||
# Вход в систему
|
||||
futriiS:~> acl login admin admin
|
||||
futriix:~> acl login admin admin
|
||||
✓ Logged in as 'admin' with role 'admin'
|
||||
|
||||
# Выход из системы
|
||||
futriiS:~> acl logout
|
||||
futriix:~> acl logout
|
||||
✓ Logged out
|
||||
|
||||
# Назначение прав доступа (после входа как admin)
|
||||
futriiS:~> acl login admin admin
|
||||
futriix:~> acl login admin admin
|
||||
✓ Logged in as 'admin' with role 'admin'
|
||||
|
||||
futriiS:~> use company
|
||||
futriix:~> use company
|
||||
✓ Switched to database 'company'
|
||||
|
||||
# Назначение прав на чтение
|
||||
futriiS:~> acl grant employees reader r
|
||||
futriix:~> acl grant employees reader r
|
||||
✓ Permissions 'r' granted to role 'reader' on collection 'employees'
|
||||
|
||||
# Назначение прав на чтение и запись
|
||||
futriiS:~> acl grant employees editor rw
|
||||
futriix:~> acl grant employees editor rw
|
||||
✓ Permissions 'rw' granted to role 'editor' on collection 'employees'
|
||||
|
||||
# Назначение полных прав (администратор коллекции)
|
||||
futriiS:~> acl grant employees admin rwda
|
||||
futriix:~> acl grant employees admin rwda
|
||||
✓ Permissions 'rwda' granted to role 'admin' on collection 'employees'
|
||||
|
||||
# Пример использования разных прав:
|
||||
@@ -821,23 +821,23 @@ curl -X POST http://localhost:8080/api/trigger/company/employees/create \
|
||||
|
||||
```sh
|
||||
# Создание триггера для логирования вставок
|
||||
futriiS:~> create trigger employees audit_log AFTER_INSERT log
|
||||
futriix:~> create trigger employees audit_log AFTER_INSERT log
|
||||
✓ Trigger 'audit_log' created on collection 'employees' for event AFTER_INSERT
|
||||
|
||||
# Создание триггера с автоматической установкой timestamp
|
||||
futriiS:~> create trigger employees set_timestamp BEFORE_INSERT modify --set updated_at $$NOW
|
||||
futriix:~> create trigger employees set_timestamp BEFORE_INSERT modify --set updated_at $$NOW
|
||||
✓ Trigger 'set_timestamp' created on collection 'employees' for event BEFORE_INSERT
|
||||
|
||||
# Создание триггера с условием (запрет удаления активных пользователей)
|
||||
futriiS:~> create trigger employees protect_active BEFORE_DELETE abort --condition status eq active
|
||||
futriix:~> create trigger employees protect_active BEFORE_DELETE abort --condition status eq active
|
||||
✓ Trigger 'protect_active' created on collection 'employees' for event BEFORE_DELETE
|
||||
|
||||
# Создание триггера с обновлением аудита
|
||||
futriiS:~> create trigger employees audit BEFORE_UPDATE modify --set modified_by $$USER --set modified_at $$NOW
|
||||
futriix:~> create trigger employees audit BEFORE_UPDATE modify --set modified_by $$USER --set modified_at $$NOW
|
||||
✓ Trigger 'audit' created on collection 'employees' for event BEFORE_UPDATE
|
||||
|
||||
# Просмотр всех триггеров коллекции
|
||||
futriiS:~> show triggers employees
|
||||
futriix:~> show triggers employees
|
||||
=== Triggers on collection 'employees': ===
|
||||
audit_log (AFTER_INSERT) - enabled [log]
|
||||
Operations:
|
||||
@@ -853,20 +853,20 @@ futriiS:~> show triggers employees
|
||||
- set: modified_at = $$NOW
|
||||
|
||||
# Включение/отключение триггера
|
||||
futriiS:~> disable trigger employees BEFORE_INSERT set_timestamp
|
||||
futriix:~> disable trigger employees BEFORE_INSERT set_timestamp
|
||||
✓ Trigger 'set_timestamp' disabled
|
||||
|
||||
futriiS:~> enable trigger employees BEFORE_INSERT set_timestamp
|
||||
futriix:~> enable trigger employees BEFORE_INSERT set_timestamp
|
||||
✓ Trigger 'set_timestamp' enabled
|
||||
|
||||
# Просмотр лога выполнения триггеров
|
||||
futriiS:~> trigger log
|
||||
futriix:~> trigger log
|
||||
=== Trigger Execution Log ===
|
||||
[1] 2026-04-12 10:30:45 - Trigger: audit_log, Event: AFTER_INSERT, Collection: employees, Document: 550e8400-...
|
||||
[2] 2026-04-12 10:31:20 - Trigger: protect_active, Event: BEFORE_DELETE, Collection: employees, Document: 550e8400-...
|
||||
|
||||
# Удаление триггера
|
||||
futriiS:~> drop trigger employees BEFORE_INSERT set_timestamp
|
||||
futriix:~> drop trigger employees BEFORE_INSERT set_timestamp
|
||||
✓ Trigger 'set_timestamp' dropped from collection 'employees'
|
||||
```
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
@@ -882,7 +882,7 @@ futriiS:~> drop trigger employees BEFORE_INSERT set_timestamp
|
||||
|
||||
```sh
|
||||
# Просмотр конфигурации сжатия
|
||||
futriiS:~> compression config
|
||||
futriix:~> compression config
|
||||
=== Compression Configuration ===
|
||||
Enabled: true
|
||||
Algorithm: snappy
|
||||
@@ -895,7 +895,7 @@ Available Algorithms:
|
||||
zstd - High compression ratio, slower
|
||||
|
||||
# Просмотр статистики сжатия
|
||||
futriiS:~> compression stats
|
||||
futriix:~> compression stats
|
||||
=== Compression Statistics ===
|
||||
Total Documents: 1250
|
||||
Compressed Documents: 890
|
||||
@@ -908,12 +908,12 @@ futriiS:~> compression stats
|
||||
Min Size Threshold: 1 KB
|
||||
|
||||
# Ручное сжатие коллекции
|
||||
futriiS:~> compress collection employees
|
||||
futriix:~> compress collection employees
|
||||
Compressing collection 'employees'...
|
||||
✓ Compressed 45 documents in collection 'employees'
|
||||
|
||||
# Просмотр информации о сжатии документа
|
||||
futriiS:~> doc compression employees 550e8400-e29b-41d4-a716-446655440000
|
||||
futriix:~> doc compression employees 550e8400-e29b-41d4-a716-446655440000
|
||||
=== Compression Info for Document: 550e8400-e29b-41d4-a716-446655440000 ===
|
||||
Compressed: true
|
||||
Ratio: 35.20%
|
||||
@@ -926,7 +926,7 @@ futriiS:~> doc compression employees 550e8400-e29b-41d4-a716-446655440000
|
||||
|
||||
## Графический интерфейс
|
||||
|
||||
В субд futriis для упрощения администрирования реализован **WUI (Web User Inerface) Веб-интерфейс**, с помощью которого через веб-браузер можно управлять субд, быстро просто и удобно. На фото ниже, приведён пример загруженного веб-интерфейса субд по умолчанию.
|
||||
В субд futriix для упрощения администрирования реализован **WUI (Web User Inerface) Веб-интерфейс**, с помощью которого через веб-браузер можно управлять субд, быстро просто и удобно. На фото ниже, приведён пример загруженного веб-интерфейса субд по умолчанию.
|
||||
|
||||
<img src="wui.png" height=400 weight=400 alt="wui.png"></img>
|
||||
|
||||
@@ -957,10 +957,10 @@ futriiS:~> doc compression employees 550e8400-e29b-41d4-a716-446655440000
|
||||
- [x] Исправить ошибки записи журнала логов (в журнал лога кроме текущего времени добавить текущий год)
|
||||
- [x] В веб-интерфейсе, слева от надписи "admin" в левой нижней части экрана, реализована возможность добавлять фото (маленького размера)
|
||||
- [x] В веб-интерфейсе "вшитые в исходный код" логин и пароль (admin; admin)-удалены
|
||||
- [x] В веб-интерфейсе, реализована возможность смены логина и пароля для авторизации в нём, при этом логин и пароль (по умолчанию admin; admin) храни в скрытом файле ".credentials", расположенном в каталоге "futriis"
|
||||
- [x] В веб-интерфейсе, реализована возможность смены логина и пароля для авторизации в нём, при этом логин и пароль (по умолчанию admin; admin) храни в скрытом файле ".credentials", расположенном в каталоге "futriix"
|
||||
- [x] В файле "/internal/compression/compression.go" заменена библиотека "lz4" на альтернативную, которая имеет стандартное версионирование на "GitHub"
|
||||
- [x] В веб-интерфейс добавлена возможность читать файл логов "futriis.log", в котором отображаются все операции, выполненные в веб-интерфейсе за сеанс (например, создана база данных, или удалена коллекция), включая те операции, которые не были выполнены в виду какой-либо ошибки
|
||||
- [x] В веб-интерфейсе, добавлена возможность добавления нового пользователя администратора, данные которого (логин и пароль) будут хранится в скрытом файле ".credentionals", расположенном в каталоге "futriis".
|
||||
- [x] В веб-интерфейс добавлена возможность читать файл логов "futriix.log", в котором отображаются все операции, выполненные в веб-интерфейсе за сеанс (например, создана база данных, или удалена коллекция), включая те операции, которые не были выполнены в виду какой-либо ошибки
|
||||
- [x] В веб-интерфейсе, добавлена возможность добавления нового пользователя администратора, данные которого (логин и пароль) будут хранится в скрытом файле ".credentionals", расположенном в каталоге "futriix".
|
||||
- [x] В веб-интерфейсе, добавлена возможность управлять плагинами (включать, отключать)
|
||||
- [x] Скрипты сборки "build.sh" и "vendor_build.sh" переписаны таким образом, чтобы проект не зависел от компилятора "gcc", т.е. напиши реализацию так чтобы его не нужно было устанавливать отдельно в операционной системе "OpenIndiana Hipster"
|
||||
- [x] Библиотека "raft-boltdb" заменена на встроенное файловое хранилище
|
||||
@@ -988,5 +988,3 @@ futriiS:~> doc compression employees 550e8400-e29b-41d4-a716-446655440000
|
||||
Григорий Сафронов - [E-mail](gvsafronov@yandex.ru)
|
||||
|
||||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user