diff --git a/src/Manifest/ManifestManager/Options/OutTable/Serializer/LegacyManifestNormalizer.php b/src/Manifest/ManifestManager/Options/OutTable/Serializer/LegacyManifestNormalizer.php index fdb7af4..a0c5196 100644 --- a/src/Manifest/ManifestManager/Options/OutTable/Serializer/LegacyManifestNormalizer.php +++ b/src/Manifest/ManifestManager/Options/OutTable/Serializer/LegacyManifestNormalizer.php @@ -221,8 +221,13 @@ private function setDataType(array $meta, array &$dataTypes, ?string $defaultBac $backend = $defaultBackend ?? 'base'; } if (in_array($key, ['type', 'length', 'default'])) { - $dataTypes['base'][$key] = $meta['value']; - $dataTypes[$backend][$key] = $meta['value']; + if (is_bool($meta['value'])) { + $value = $meta['value'] ? 'true' : 'false'; + } else { + $value = (string) $meta['value']; + } + $dataTypes['base'][$key] = $value; + $dataTypes[$backend][$key] = $value; } } diff --git a/tests/Manifest/ManifestManagerTest.php b/tests/Manifest/ManifestManagerTest.php index a079f56..7349d89 100644 --- a/tests/Manifest/ManifestManagerTest.php +++ b/tests/Manifest/ManifestManagerTest.php @@ -9,6 +9,7 @@ use Keboola\Component\Manifest\ManifestManager\Options\OutFileManifestOptions; use Keboola\Component\Manifest\ManifestManager\Options\OutTable\ManifestOptions; use Keboola\Component\Manifest\ManifestManager\Options\OutTable\ManifestOptionsSchema; +use Keboola\Component\Manifest\ManifestManager\Options\OutTable\ManifestOptionsSchemaDataType; use Keboola\Temp\Temp; use PHPUnit\Framework\TestCase; @@ -241,11 +242,11 @@ public function testLoadLegacyTableManifestAsObject(): void ), new ManifestOptionsSchema( 'number', - [], + ['base' => ['type' => 'INTEGER', 'default' =>'0']], ), new ManifestOptionsSchema( 'other_column', - [], + ['base' => ['type' => 'BOOLEAN', 'default' => 'false']], ), ]); @@ -465,9 +466,11 @@ public function testConvertLegacyManifestToNewManifestObject(): void ), new ManifestOptionsSchema( 'number', + ['base' => ['type' => 'INTEGER', 'default' =>'0']], ), new ManifestOptionsSchema( 'other_column', + ['base' => ['type' => 'BOOLEAN', 'default' => 'false']], ), ]) ->setTableMetadata([ diff --git a/tests/Manifest/fixtures/manifest-data-dir/in/tables/legacy.manifest b/tests/Manifest/fixtures/manifest-data-dir/in/tables/legacy.manifest index 83f53d6..d506764 100644 --- a/tests/Manifest/fixtures/manifest-data-dir/in/tables/legacy.manifest +++ b/tests/Manifest/fixtures/manifest-data-dir/in/tables/legacy.manifest @@ -27,6 +27,26 @@ "key": "yet.another.key", "value": "Some other value" } + ], + "number": [ + { + "key": "KBC.datatype.basetype", + "value": "INTEGER" + }, + { + "key": "KBC.datatype.default", + "value": 0 + } + ], + "other_column": [ + { + "key": "KBC.datatype.basetype", + "value": "BOOLEAN" + }, + { + "key": "KBC.datatype.default", + "value": false + } ] } }