Неофициальный адаптер Prisma ORM для работы с базой данных YDB через драйверный API. Пакет предоставляет фабрику PrismaYdbAdapterFactory, которая позволяет использовать Prisma Client поверх YQL-запросов.
Версия: v0.0.7.
npm install adapter-ydb@alphaПолный пример представлен в файле src/playground/main.ts. Он демонстрирует CRUD-операции с таблицей users в YDB.
Пример схемы представлен в prisma/schema.prisma.
generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } provider = "postgresql"необходим для совместимости;url = env("DATABASE_URL")необходим для запуска клиента;- воспользуйтесь командой
npm prisma init; - добавьте в файл
.envAPI KEY для Prisma; на текущем этапе разработки Prisma Client требует URL, он фактически не используется и нужен лишь для совместимости; можно указать dummy-URL наprisma+postgres://accelerate.prisma-data.net.
- воспользуйтесь командой
const endpoint = 'grpc://localhost:2136' const database = '/local' сonst factory = new PrismaYdbAdapterFactory({ endpoint, database }) const prisma = new PrismaClient({ adapter: factory, log: ['error'] })Для подключения потребуется развернуть локально YDB, настроенные контейнеры представлены в src/playground/docker-compose.yml
await prisma.$executeRawUnsafe(`CREATE TABLE IF NOT EXISTS users ( id Uint64, name Utf8, age Int32, created_at Datetime, PRIMARY KEY (id) );`) await prisma.$executeRaw(sql` UPSERT INTO users (id, name, age, created_at) VALUES (${uint64(user.id)}, ${user.name}, ${int32(user.age)}, CurrentUtcDatetime()); `)await prisma.$disconnect()- Обеспечить выполнение большинства операций через API Prisma ORM.
- Упростить архитектуру программного модуля.
- Убрать обёртку импорта провайдера (provider) через PostgreSQL.
- Решить проблему с невозможностью импорта в Prisma собственного провайдера БД.
- Реализовать поддержку специальных сценариев пользования:
- федеративные запросы;
- транзакционные операции.
- Реализовать автоматическое тестирование.
Проект распространяется по лицензии MIT.