diff --git a/src/Schema/PostgreSQLSchemaManager.php b/src/Schema/PostgreSQLSchemaManager.php index 13fde63b2b8..4694982734b 100644 --- a/src/Schema/PostgreSQLSchemaManager.php +++ b/src/Schema/PostgreSQLSchemaManager.php @@ -463,6 +463,7 @@ protected function _getPortableTableColumnDefinition($tableColumn) $length = null; break; + case 'json': case 'text': case '_varchar': case 'varchar': diff --git a/tests/Functional/Schema/PostgreSQLSchemaManagerTest.php b/tests/Functional/Schema/PostgreSQLSchemaManagerTest.php index 33ad395c5e8..8e9223a910f 100644 --- a/tests/Functional/Schema/PostgreSQLSchemaManagerTest.php +++ b/tests/Functional/Schema/PostgreSQLSchemaManagerTest.php @@ -300,6 +300,20 @@ public function testDefaultValueCharacterVarying(): void self::assertEquals('foo', $databaseTable->getColumn('def')->getDefault()); } + public function testJsonDefaultValue(): void + { + $testTable = new Table('test_json'); + $testTable + ->addColumn('foo', Types::JSON) + ->setDefault('{"key": "value with a single quote \' in string value"}'); + $this->dropAndCreateTable($testTable); + + $columns = $this->schemaManager->listTableColumns('test_json'); + + self::assertSame(Types::JSON, $columns['foo']->getType()->getName()); + self::assertSame('{"key": "value with a single quote \' in string value"}', $columns['foo']->getDefault()); + } + /** * @param callable(AbstractSchemaManager):Comparator $comparatorFactory *