dimajolkin / ydb-doctrine
It's driver for YDB https://ydb.tech
Installs: 48
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/dimajolkin/ydb-doctrine
Requires
- php: ^8.1
- dimajolkin/ydb-php-sdk: ^1.3
- doctrine/orm: ^2.13
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^6.1
This package is auto-updated.
Last update: 2025-10-05 16:57:28 UTC
README
composer require dimajolkin/ydb-doctrine:dev-master
Пишется для проверки возможности запуска в маленьком проекте
# Для ананимного доступа. Используется при локальной разработке DATABASE_URL="ydb://localhost:2136/local?discovery=false&iam_config[anonymous]=true&iam_config[insecure]=true" # DATABASE_URL="ydb://ydb.serverless.yandexcloud.net:2135/ru-central1/xxxxxxx/xxxxxxx?discovery=false&iam_config[temp_dir]=/tmp&iam_config[use_metadata]=true"
Example for Symfony:
parameters: doctrine.orm.entity_manager.class: Dimajolkin\YdbDoctrine\ORM\EntityManager #services: # doctrine.dbal.logging_middleware: # class: 'Dimajolkin\YdbDoctrine\DBAL\Driver\Middleware\LoggerMiddleware' doctrine: dbal: options: YBD_URL: '%env(resolve:DATABASE_URL)%' driver_class: Dimajolkin\YdbDoctrine\Driver\YdbDriver wrapper_class: Dimajolkin\YdbDoctrine\YdbConnection server_version: 1.4 dql: string_functions: rand: Dimajolkin\YdbDoctrine\ORM\Functions\Rand
Генерация таблиц
use Doctrine\DBAL\Schema\Table; $table1 = new Table('event_bonuses'); $table1->addColumn('event_id', Types::STRING); $table1->addColumn('event_bonuses_id', Types::STRING); $table1->setPrimaryKey(['event_id', 'event_bonuses_id']); $this->connection->createSchemaManager()->createTable($table1); $table2 = new Table('event'); $table2->addColumn('id', Types::STRING); $table2->addColumn('name', Types::STRING, ['notnull' => false]); // Если колонка не в PK то обязательно not null! $table2->setPrimaryKey(['id']); $this->connection->createSchemaManager()->createTable($table2);
Функции
- RAND(columnName) -
DBAL Type mapping to YDB:
| Doctrine\DBAL\Types | Value | YDB Type |
|---|---|---|
| ARRAY | array | json |
| ASCII_STRING | ascii_string | utf8 |
| BIGINT | bigint | int64 |
| BINARY | binary | string |
| BLOB | blob | string |
| BOOLEAN | boolean | bool |
| DATE_MUTABLE | date | |
| DATE_IMMUTABLE | date_immutable | |
| DATEINTERVAL | dateinterval | |
| DATETIME_MUTABLE | datetime | |
| DATETIME_IMMUTABLE | datetime_immutable | datetime |
| DATETIMETZ_MUTABLE | datetimetz | |
| DATETIMETZ_IMMUTABLE | datetimetz_immutable | |
| DECIMAL | decimal | |
| FLOAT | float | float |
| GUID | guid | uuid |
| INTEGER | integer | int32 |
| JSON | json | json |
| OBJECT | object | - |
| SIMPLE_ARRAY | simple_array | json |
| SMALLINT | smallint | int8 |
| STRING | string | utf8 |
| TEXT | text | utf8 |
| TIME_MUTABLE | time | int32 |
| TIME_IMMUTABLE | time_immutable | int32 |
YDB Type:
| Dimajolkin\YdbDoctrine\YdbTypes | Constant Value | Description |
|---|---|---|
| BOOL | bool | |
| INT8 | int8 | |
| INT16 | int16 | |
| INT32 | int32 | |
| INT64 | int64 | |
| UINT8 | uint8 | |
| UINT32 | uint32 | |
| UINT64 | uint64 | |
| FLOAT | float | |
| DOUBLE | double | |
| DECIMAL | decimal | |
| STRING | string | |
| UTF8 | utf8 | |
| JSON | json | |
| JSON_DOCUMENT | jsonDocument | |
| YSON | yson | |
| UUID | uuid | |
| DATE | date | |
| DATETIME | datetime | |
| TIMESTAMP | timestamp | |
| INTERVAL | interval |