Files
Baradb/docs/bg/schema.md
T
dimgigov 4a83eb6783 docs: update distributed/backup/schema/storage for multi-database
- Add multi-database limitations to distributed docs
- Fix backup commands and add multi-database backup guidance
- Add SQL migration section to schema docs
- Update storage examples to use per-database paths
2026-05-21 09:44:25 +03:00

66 lines
1.9 KiB
Markdown

# Схема на BaraDB
BaraDB използва схема с типове, наследяване и автоматични миграции.
## Дефиниране на Типове
```nim
import barabadb/schema/schema
var s = newSchema()
let person = newType("Person")
person.addProperty("name", "str", required = true)
person.addProperty("age", "int32")
s.addType("default", person)
```
## Наследяване на Типове
```nim
let employee = newType("Employee")
employee.setBases(@["Person"])
employee.addProperty("department", "str")
s.addType("default", employee)
let resolved = s.resolveInheritance(employee)
```
## SQL Миграции
BaraDB поддържа SQL миграции, изпълнявани чрез BaraQL:
```sql
-- Създаване на миграционна таблица
CREATE MIGRATION TABLE my_migration;
-- Прилагане на чакащи миграции
MIGRATION UP;
-- Rollback на последната миграция
MIGRATION DOWN;
-- Прилагане на всички чакащи миграции наведнъж
MIGRATION UP BATCH;
-- Dry-run за преглед на промените
MIGRATION DRYRUN;
-- Проверка на статуса
MIGRATION STATUS;
```
Миграционните скриптове се съхраняват вътре в LSMTree на всяка база данни и са изолирани per database. При използване на множество бази, изпълнете `USE DATABASE <име>` преди миграционните команди.
## Типове Полета
| Тип | Описание |
|-----|---------|
| `str` | Низ |
| `int32` | 32-битово цяло число |
| `int64` | 64-битово цяло число |
| `float32` | 32-битов float |
| `float64` | 64-битов float |
| `bool` | Булева стойност |
| `datetime` | Дата/час |
| `bytes` | Двоични данни |