Files
dimgigov 6bfc5b3a3c
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
feat(clients): add nim-allographer client with BaraDB driver support
- Pure Nim wire protocol client (async + sync, no C FFI)
- Query Builder: fluent API, SQL generator, execution, transactions
- Schema Builder: create/alter/drop tables, column operations
- Connection pool with aging and timeout handling
- ORM integration via compile-time DB_BARADB switch
- Tests: test_open, test_query
- Documentation: README.md, PLAN_BARADB.md
2026-05-21 15:49:11 +03:00

42 lines
1.0 KiB
Nim

import json
import ../src/allographer/schema_builder
import connections
# migration
rdb.create([
table("Auth",[
Column.increments("id"),
Column.string("auth")
]),
table("Users",[
Column.increments("id"),
Column.uuid("uuid"),
Column.string("oid").index().nullable(),
Column.string("oid2").index().nullable(),
Column.string("Name").nullable(),
Column.date("birth_date").nullable(),
Column.foreign("auth_id").reference("id").onTable("Auth").onDelete(SET_NULL).default(1)
]),
])
rdb.alter([
table("Users", [
# add column
Column.string("aaa").default("").add(),
Column.foreign("bbb").reference("id").onTable("Auth").onDelete(SET_NULL).add(),
# change column definition
Column.string("aaa").nullable().change(),
# change column name
Column.renameColumn("aaa", "ccc"),
# delete column
Column.dropColumn("ccc"),
Column.dropColumn("bbb"),
]),
# change table name
table("Users").renameTo("members"),
])
# drop table
rdb.drop(table("members"))