Files
Baradb/docs/ru/schema.md

52 lines
1.3 KiB
Markdown

# Система схем
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)
```
## Операции со схемой
### Diff
```nim
let diff = s.diff(oldSchema, newSchema)
```
### Миграции
Изменения схемы отслеживаются и могут генерировать скрипты миграции.
## Типы свойств
| Тип | Описание |
|-----|---------|
| `str` | Строка |
| `int32` | 32-битное целое |
| `int64` | 64-битное целое |
| `float32` | 32-битное с плавающей точкой |
| `float64` | 64-битное с плавающей точкой |
| `bool` | Булевый |
| `datetime` | Дата/время |
| `bytes` | Двоичные данные |