Skip to content
This repository was archived by the owner on Jan 24, 2024. It is now read-only.
This repository was archived by the owner on Jan 24, 2024. It is now read-only.

Support json for mysql driver #47

@RNACode

Description

@RNACode

What steps will reproduce the problem?

Install cycle/orm and cycle/migrations
Now cycle not full support json type for mysql, because it automatically convert json to text
https://github.com/spiral/database/blob/master/src/Driver/MySQL/Schema/MySQLColumn.php#L88

Example of migration

    public function up(): void
    {
        $this
            ->table(self::$table)
            ->addColumn('id', 'primary')
            ->addColumn('message', 'json')
            ->create();
    }

I've used following hack, but it looks terrible

    public function up(): void
    {
        $tbl = $this
            ->table(self::$table);

        $tbl
            ->addColumn('id', 'primary')
            ->create();

        $schema = $tbl->getSchema();
        $col = $schema->json('message');
        $prop = (new ReflectionClass($col))->getProperty('type');
        $prop->setAccessible(true);
        $prop->setValue($col, 'JSON');

        $schema->save();
    }

What is the expected result?

I've expected json column

What do you get instead?

I've get a text column

Additional info

Q A
Orm version 2.7.15
PHP version 7.3
Operating system Ubuntu

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions