@dbml/core 10.3.0-alpha.0 → 10.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/export/DbmlExporter.cjs +13 -13
- package/lib/export/DbmlExporter.mjs +88 -84
- package/lib/export/MysqlExporter.cjs +8 -8
- package/lib/export/MysqlExporter.mjs +54 -50
- package/lib/export/OracleExporter.cjs +7 -7
- package/lib/export/OracleExporter.mjs +79 -74
- package/lib/export/PostgresExporter.cjs +9 -9
- package/lib/export/PostgresExporter.mjs +82 -78
- package/lib/export/SqlServerExporter.cjs +11 -11
- package/lib/export/SqlServerExporter.mjs +64 -60
- package/lib/model_structure/database.cjs +1 -1
- package/lib/model_structure/database.mjs +56 -53
- package/lib/model_structure/dep.cjs +1 -1
- package/lib/model_structure/dep.mjs +11 -9
- package/lib/model_structure/enum.cjs +1 -1
- package/lib/model_structure/enum.mjs +15 -13
- package/lib/model_structure/enumValue.cjs +1 -1
- package/lib/model_structure/enumValue.mjs +8 -6
- package/lib/model_structure/field.cjs +1 -1
- package/lib/model_structure/field.mjs +10 -8
- package/lib/model_structure/schema.cjs +1 -1
- package/lib/model_structure/schema.mjs +25 -23
- package/lib/model_structure/table.cjs +1 -1
- package/lib/model_structure/table.mjs +43 -40
- package/lib/model_structure/tableGroup.cjs +1 -1
- package/lib/model_structure/tableGroup.mjs +11 -9
- package/lib/model_structure/tablePartial.cjs +1 -1
- package/lib/model_structure/tablePartial.mjs +8 -6
- package/lib/node_modules/lodash-es/_DataView.cjs +1 -0
- package/lib/node_modules/lodash-es/_DataView.mjs +10 -0
- package/lib/node_modules/lodash-es/_Hash.cjs +1 -0
- package/lib/node_modules/lodash-es/_Hash.mjs +20 -0
- package/lib/node_modules/lodash-es/_ListCache.cjs +1 -0
- package/lib/node_modules/lodash-es/_ListCache.mjs +20 -0
- package/lib/node_modules/lodash-es/_Map.cjs +1 -0
- package/lib/node_modules/lodash-es/_Map.mjs +10 -0
- package/lib/node_modules/lodash-es/_MapCache.cjs +1 -0
- package/lib/node_modules/lodash-es/_MapCache.mjs +20 -0
- package/lib/node_modules/lodash-es/_Promise.cjs +1 -0
- package/lib/node_modules/lodash-es/_Promise.mjs +10 -0
- package/lib/node_modules/lodash-es/_Set.cjs +1 -0
- package/lib/node_modules/lodash-es/_Set.mjs +10 -0
- package/lib/node_modules/lodash-es/_SetCache.cjs +1 -0
- package/lib/node_modules/lodash-es/_SetCache.mjs +15 -0
- package/lib/node_modules/lodash-es/_Stack.cjs +1 -0
- package/lib/node_modules/lodash-es/_Stack.mjs +18 -0
- package/lib/node_modules/lodash-es/_Symbol.cjs +1 -0
- package/lib/node_modules/lodash-es/_Symbol.mjs +9 -0
- package/lib/node_modules/lodash-es/_Uint8Array.cjs +1 -0
- package/lib/node_modules/lodash-es/_Uint8Array.mjs +9 -0
- package/lib/node_modules/lodash-es/_WeakMap.cjs +1 -0
- package/lib/node_modules/lodash-es/_WeakMap.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayAggregator.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayAggregator.mjs +13 -0
- package/lib/node_modules/lodash-es/_arrayEach.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayEach.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayFilter.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayFilter.mjs +13 -0
- package/lib/node_modules/lodash-es/_arrayLikeKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayLikeKeys.mjs +19 -0
- package/lib/node_modules/lodash-es/_arrayMap.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayMap.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayPush.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayPush.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayReduce.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayReduce.mjs +11 -0
- package/lib/node_modules/lodash-es/_arraySome.cjs +1 -0
- package/lib/node_modules/lodash-es/_arraySome.mjs +10 -0
- package/lib/node_modules/lodash-es/_asciiToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_asciiToArray.mjs +9 -0
- package/lib/node_modules/lodash-es/_assocIndexOf.cjs +1 -0
- package/lib/node_modules/lodash-es/_assocIndexOf.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseAggregator.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseAggregator.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseAssignValue.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseAssignValue.mjs +17 -0
- package/lib/node_modules/lodash-es/_baseEach.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseEach.mjs +10 -0
- package/lib/node_modules/lodash-es/_baseFlatten.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseFlatten.mjs +18 -0
- package/lib/node_modules/lodash-es/_baseFor.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseFor.mjs +9 -0
- package/lib/node_modules/lodash-es/_baseForOwn.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseForOwn.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseGet.mjs +15 -0
- package/lib/node_modules/lodash-es/_baseGetAllKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseGetAllKeys.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseGetTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseGetTag.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseHasIn.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseHasIn.mjs +9 -0
- package/lib/node_modules/lodash-es/_baseIsArguments.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsArguments.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseIsEqual.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsEqual.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseIsEqualDeep.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsEqualDeep.mjs +34 -0
- package/lib/node_modules/lodash-es/_baseIsMatch.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsMatch.mjs +30 -0
- package/lib/node_modules/lodash-es/_baseIsNative.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsNative.mjs +15 -0
- package/lib/node_modules/lodash-es/_baseIsTypedArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsTypedArray.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseIteratee.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIteratee.mjs +16 -0
- package/lib/node_modules/lodash-es/_baseKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseKeys.mjs +16 -0
- package/lib/node_modules/lodash-es/_baseMatches.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseMatches.mjs +17 -0
- package/lib/node_modules/lodash-es/_baseMatchesProperty.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseMatchesProperty.mjs +21 -0
- package/lib/node_modules/lodash-es/_baseNth.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseNth.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseProperty.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseProperty.mjs +11 -0
- package/lib/node_modules/lodash-es/_basePropertyDeep.cjs +1 -0
- package/lib/node_modules/lodash-es/_basePropertyDeep.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseReduce.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseReduce.mjs +11 -0
- package/lib/node_modules/lodash-es/_baseSlice.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseSlice.mjs +12 -0
- package/lib/node_modules/lodash-es/_baseTimes.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseTimes.mjs +10 -0
- package/lib/node_modules/lodash-es/_baseToString.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseToString.mjs +19 -0
- package/lib/node_modules/lodash-es/_baseTrim.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseTrim.mjs +12 -0
- package/lib/node_modules/lodash-es/_baseUnary.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseUnary.mjs +11 -0
- package/lib/node_modules/lodash-es/_cacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_cacheHas.mjs +9 -0
- package/lib/node_modules/lodash-es/_castFunction.cjs +1 -0
- package/lib/node_modules/lodash-es/_castFunction.mjs +12 -0
- package/lib/node_modules/lodash-es/_castPath.cjs +1 -0
- package/lib/node_modules/lodash-es/_castPath.mjs +15 -0
- package/lib/node_modules/lodash-es/_castSlice.cjs +1 -0
- package/lib/node_modules/lodash-es/_castSlice.mjs +13 -0
- package/lib/node_modules/lodash-es/_copyArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_copyArray.mjs +11 -0
- package/lib/node_modules/lodash-es/_coreJsData.cjs +1 -0
- package/lib/node_modules/lodash-es/_coreJsData.mjs +9 -0
- package/lib/node_modules/lodash-es/_createAggregator.cjs +1 -0
- package/lib/node_modules/lodash-es/_createAggregator.mjs +18 -0
- package/lib/node_modules/lodash-es/_createBaseEach.cjs +1 -0
- package/lib/node_modules/lodash-es/_createBaseEach.mjs +17 -0
- package/lib/node_modules/lodash-es/_createBaseFor.cjs +1 -0
- package/lib/node_modules/lodash-es/_createBaseFor.mjs +15 -0
- package/lib/node_modules/lodash-es/_createCaseFirst.cjs +1 -0
- package/lib/node_modules/lodash-es/_createCaseFirst.mjs +19 -0
- package/lib/node_modules/lodash-es/_defineProperty.cjs +1 -0
- package/lib/node_modules/lodash-es/_defineProperty.mjs +14 -0
- package/lib/node_modules/lodash-es/_equalArrays.cjs +1 -0
- package/lib/node_modules/lodash-es/_equalArrays.mjs +39 -0
- package/lib/node_modules/lodash-es/_equalByTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_equalByTag.mjs +39 -0
- package/lib/node_modules/lodash-es/_equalObjects.cjs +1 -0
- package/lib/node_modules/lodash-es/_equalObjects.mjs +36 -0
- package/lib/node_modules/lodash-es/_freeGlobal.cjs +1 -0
- package/lib/node_modules/lodash-es/_freeGlobal.mjs +8 -0
- package/lib/node_modules/lodash-es/_getAllKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_getAllKeys.mjs +14 -0
- package/lib/node_modules/lodash-es/_getMapData.cjs +1 -0
- package/lib/node_modules/lodash-es/_getMapData.mjs +13 -0
- package/lib/node_modules/lodash-es/_getMatchData.cjs +1 -0
- package/lib/node_modules/lodash-es/_getMatchData.mjs +21 -0
- package/lib/node_modules/lodash-es/_getNative.cjs +1 -0
- package/lib/node_modules/lodash-es/_getNative.mjs +14 -0
- package/lib/node_modules/lodash-es/_getRawTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_getRawTag.mjs +18 -0
- package/lib/node_modules/lodash-es/_getSymbols.cjs +1 -0
- package/lib/node_modules/lodash-es/_getSymbols.mjs +14 -0
- package/lib/node_modules/lodash-es/_getTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_getTag.mjs +25 -0
- package/lib/node_modules/lodash-es/_getValue.cjs +1 -0
- package/lib/node_modules/lodash-es/_getValue.mjs +9 -0
- package/lib/node_modules/lodash-es/_hasPath.cjs +1 -0
- package/lib/node_modules/lodash-es/_hasPath.mjs +23 -0
- package/lib/node_modules/lodash-es/_hasUnicode.cjs +1 -0
- package/lib/node_modules/lodash-es/_hasUnicode.mjs +11 -0
- package/lib/node_modules/lodash-es/_hashClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashClear.mjs +12 -0
- package/lib/node_modules/lodash-es/_hashDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashDelete.mjs +10 -0
- package/lib/node_modules/lodash-es/_hashGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashGet.mjs +17 -0
- package/lib/node_modules/lodash-es/_hashHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashHas.mjs +13 -0
- package/lib/node_modules/lodash-es/_hashSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashSet.mjs +13 -0
- package/lib/node_modules/lodash-es/_isFlattenable.cjs +1 -0
- package/lib/node_modules/lodash-es/_isFlattenable.mjs +14 -0
- package/lib/node_modules/lodash-es/_isIndex.cjs +1 -0
- package/lib/node_modules/lodash-es/_isIndex.mjs +12 -0
- package/lib/node_modules/lodash-es/_isKey.cjs +1 -0
- package/lib/node_modules/lodash-es/_isKey.mjs +15 -0
- package/lib/node_modules/lodash-es/_isKeyable.cjs +1 -0
- package/lib/node_modules/lodash-es/_isKeyable.mjs +10 -0
- package/lib/node_modules/lodash-es/_isMasked.cjs +1 -0
- package/lib/node_modules/lodash-es/_isMasked.mjs +15 -0
- package/lib/node_modules/lodash-es/_isPrototype.cjs +1 -0
- package/lib/node_modules/lodash-es/_isPrototype.mjs +12 -0
- package/lib/node_modules/lodash-es/_isStrictComparable.cjs +1 -0
- package/lib/node_modules/lodash-es/_isStrictComparable.mjs +12 -0
- package/lib/node_modules/lodash-es/_listCacheClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheClear.mjs +9 -0
- package/lib/node_modules/lodash-es/_listCacheDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheDelete.mjs +13 -0
- package/lib/node_modules/lodash-es/_listCacheGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheGet.mjs +13 -0
- package/lib/node_modules/lodash-es/_listCacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheHas.mjs +12 -0
- package/lib/node_modules/lodash-es/_listCacheSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheSet.mjs +13 -0
- package/lib/node_modules/lodash-es/_mapCacheClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheClear.mjs +18 -0
- package/lib/node_modules/lodash-es/_mapCacheDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheDelete.mjs +13 -0
- package/lib/node_modules/lodash-es/_mapCacheGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheGet.mjs +12 -0
- package/lib/node_modules/lodash-es/_mapCacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheHas.mjs +12 -0
- package/lib/node_modules/lodash-es/_mapCacheSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheSet.mjs +13 -0
- package/lib/node_modules/lodash-es/_mapToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapToArray.mjs +12 -0
- package/lib/node_modules/lodash-es/_matchesStrictComparable.cjs +1 -0
- package/lib/node_modules/lodash-es/_matchesStrictComparable.mjs +11 -0
- package/lib/node_modules/lodash-es/_memoizeCapped.cjs +1 -0
- package/lib/node_modules/lodash-es/_memoizeCapped.mjs +15 -0
- package/lib/node_modules/lodash-es/_nativeCreate.cjs +1 -0
- package/lib/node_modules/lodash-es/_nativeCreate.mjs +9 -0
- package/lib/node_modules/lodash-es/_nativeKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_nativeKeys.mjs +9 -0
- package/lib/node_modules/lodash-es/_nodeUtil.cjs +1 -0
- package/lib/node_modules/lodash-es/_nodeUtil.mjs +13 -0
- package/lib/node_modules/lodash-es/_objectToString.cjs +1 -0
- package/lib/node_modules/lodash-es/_objectToString.mjs +11 -0
- package/lib/node_modules/lodash-es/_overArg.cjs +1 -0
- package/lib/node_modules/lodash-es/_overArg.mjs +11 -0
- package/lib/node_modules/lodash-es/_root.cjs +1 -0
- package/lib/node_modules/lodash-es/_root.mjs +9 -0
- package/lib/node_modules/lodash-es/_setCacheAdd.cjs +1 -0
- package/lib/node_modules/lodash-es/_setCacheAdd.mjs +11 -0
- package/lib/node_modules/lodash-es/_setCacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_setCacheHas.mjs +9 -0
- package/lib/node_modules/lodash-es/_setToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_setToArray.mjs +12 -0
- package/lib/node_modules/lodash-es/_stackClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackClear.mjs +12 -0
- package/lib/node_modules/lodash-es/_stackDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackDelete.mjs +10 -0
- package/lib/node_modules/lodash-es/_stackGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackGet.mjs +9 -0
- package/lib/node_modules/lodash-es/_stackHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackHas.mjs +9 -0
- package/lib/node_modules/lodash-es/_stackSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackSet.mjs +20 -0
- package/lib/node_modules/lodash-es/_stringToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_stringToArray.mjs +14 -0
- package/lib/node_modules/lodash-es/_stringToPath.cjs +1 -0
- package/lib/node_modules/lodash-es/_stringToPath.mjs +14 -0
- package/lib/node_modules/lodash-es/_toKey.cjs +1 -0
- package/lib/node_modules/lodash-es/_toKey.mjs +14 -0
- package/lib/node_modules/lodash-es/_toSource.cjs +1 -0
- package/lib/node_modules/lodash-es/_toSource.mjs +19 -0
- package/lib/node_modules/lodash-es/_trimmedEndIndex.cjs +1 -0
- package/lib/node_modules/lodash-es/_trimmedEndIndex.mjs +12 -0
- package/lib/node_modules/lodash-es/_unicodeToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_unicodeToArray.mjs +21 -0
- package/lib/node_modules/lodash-es/capitalize.cjs +1 -0
- package/lib/node_modules/lodash-es/capitalize.mjs +13 -0
- package/lib/node_modules/lodash-es/concat.cjs +1 -0
- package/lib/node_modules/lodash-es/concat.mjs +18 -0
- package/lib/node_modules/lodash-es/eq.cjs +1 -0
- package/lib/node_modules/lodash-es/eq.mjs +9 -0
- package/lib/node_modules/lodash-es/first.cjs +1 -0
- package/lib/node_modules/lodash-es/first.mjs +9 -0
- package/lib/node_modules/lodash-es/flatten.cjs +1 -0
- package/lib/node_modules/lodash-es/flatten.mjs +12 -0
- package/lib/node_modules/lodash-es/flattenDeep.cjs +1 -0
- package/lib/node_modules/lodash-es/flattenDeep.mjs +12 -0
- package/lib/node_modules/lodash-es/flattenDepth.cjs +1 -0
- package/lib/node_modules/lodash-es/flattenDepth.mjs +13 -0
- package/lib/node_modules/lodash-es/forEach.cjs +1 -0
- package/lib/node_modules/lodash-es/forEach.mjs +15 -0
- package/lib/node_modules/lodash-es/get.cjs +1 -0
- package/lib/node_modules/lodash-es/get.mjs +13 -0
- package/lib/node_modules/lodash-es/groupBy.cjs +1 -0
- package/lib/node_modules/lodash-es/groupBy.mjs +12 -0
- package/lib/node_modules/lodash-es/hasIn.cjs +1 -0
- package/lib/node_modules/lodash-es/hasIn.mjs +13 -0
- package/lib/node_modules/lodash-es/head.cjs +1 -0
- package/lib/node_modules/lodash-es/head.mjs +9 -0
- package/lib/node_modules/lodash-es/identity.cjs +1 -0
- package/lib/node_modules/lodash-es/identity.mjs +9 -0
- package/lib/node_modules/lodash-es/isArguments.cjs +1 -0
- package/lib/node_modules/lodash-es/isArguments.mjs +14 -0
- package/lib/node_modules/lodash-es/isArray.cjs +1 -0
- package/lib/node_modules/lodash-es/isArray.mjs +8 -0
- package/lib/node_modules/lodash-es/isArrayLike.cjs +1 -0
- package/lib/node_modules/lodash-es/isArrayLike.mjs +13 -0
- package/lib/node_modules/lodash-es/isBuffer.cjs +1 -0
- package/lib/node_modules/lodash-es/isBuffer.mjs +10 -0
- package/lib/node_modules/lodash-es/isEmpty.cjs +1 -0
- package/lib/node_modules/lodash-es/isEmpty.mjs +25 -0
- package/lib/node_modules/lodash-es/isFunction.cjs +1 -0
- package/lib/node_modules/lodash-es/isFunction.mjs +15 -0
- package/lib/node_modules/lodash-es/isLength.cjs +1 -0
- package/lib/node_modules/lodash-es/isLength.mjs +11 -0
- package/lib/node_modules/lodash-es/isNil.cjs +1 -0
- package/lib/node_modules/lodash-es/isNil.mjs +9 -0
- package/lib/node_modules/lodash-es/isObject.cjs +1 -0
- package/lib/node_modules/lodash-es/isObject.mjs +10 -0
- package/lib/node_modules/lodash-es/isObjectLike.cjs +1 -0
- package/lib/node_modules/lodash-es/isObjectLike.mjs +9 -0
- package/lib/node_modules/lodash-es/isSymbol.cjs +1 -0
- package/lib/node_modules/lodash-es/isSymbol.mjs +13 -0
- package/lib/node_modules/lodash-es/isTypedArray.cjs +1 -0
- package/lib/node_modules/lodash-es/isTypedArray.mjs +11 -0
- package/lib/node_modules/lodash-es/keys.cjs +1 -0
- package/lib/node_modules/lodash-es/keys.mjs +14 -0
- package/lib/node_modules/lodash-es/last.cjs +1 -0
- package/lib/node_modules/lodash-es/last.mjs +10 -0
- package/lib/node_modules/lodash-es/lodash.cjs +1 -0
- package/lib/node_modules/lodash-es/lodash.mjs +46 -0
- package/lib/node_modules/lodash-es/memoize.cjs +1 -0
- package/lib/node_modules/lodash-es/memoize.mjs +19 -0
- package/lib/node_modules/lodash-es/nth.cjs +1 -0
- package/lib/node_modules/lodash-es/nth.mjs +13 -0
- package/lib/node_modules/lodash-es/property.cjs +1 -0
- package/lib/node_modules/lodash-es/property.mjs +15 -0
- package/lib/node_modules/lodash-es/reduce.cjs +1 -0
- package/lib/node_modules/lodash-es/reduce.mjs +17 -0
- package/lib/node_modules/lodash-es/stubArray.cjs +1 -0
- package/lib/node_modules/lodash-es/stubArray.mjs +9 -0
- package/lib/node_modules/lodash-es/stubFalse.cjs +1 -0
- package/lib/node_modules/lodash-es/stubFalse.mjs +9 -0
- package/lib/node_modules/lodash-es/toFinite.cjs +1 -0
- package/lib/node_modules/lodash-es/toFinite.mjs +12 -0
- package/lib/node_modules/lodash-es/toInteger.cjs +1 -0
- package/lib/node_modules/lodash-es/toInteger.mjs +13 -0
- package/lib/node_modules/lodash-es/toNumber.cjs +1 -0
- package/lib/node_modules/lodash-es/toNumber.mjs +23 -0
- package/lib/node_modules/lodash-es/toString.cjs +1 -0
- package/lib/node_modules/lodash-es/toString.mjs +12 -0
- package/lib/node_modules/lodash-es/upperFirst.cjs +1 -0
- package/lib/node_modules/lodash-es/upperFirst.mjs +9 -0
- package/lib/node_modules/parsimmon/build/parsimmon.umd.min.cjs +16 -0
- package/lib/node_modules/parsimmon/build/parsimmon.umd.min.mjs +689 -0
- package/lib/node_modules/pluralize/pluralize.cjs +1 -0
- package/lib/node_modules/pluralize/pluralize.mjs +276 -0
- package/lib/packages/dbml-core/node_modules/lodash/lodash.cjs +20 -0
- package/lib/packages/dbml-core/node_modules/lodash/lodash.mjs +3306 -0
- package/lib/packages/dbml-core/package.json.cjs +1 -0
- package/lib/{package.json.mjs → packages/dbml-core/package.json.mjs} +1 -1
- package/lib/parse/ANTLR/ASTGeneration/helpers.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/helpers.mjs +5 -3
- package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.mjs +149 -143
- package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.mjs +146 -142
- package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.mjs +184 -181
- package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.mjs +149 -145
- package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.mjs +89 -85
- package/lib/parse/deprecated/dbmlParser.cjs +3 -3
- package/lib/parse/deprecated/dbmlParser.mjs +27 -25
- package/lib/parse/deprecated/mssql/base_parsers.cjs +1 -1
- package/lib/parse/deprecated/mssql/base_parsers.mjs +38 -38
- package/lib/parse/deprecated/mssql/column_definition/actions.cjs +1 -1
- package/lib/parse/deprecated/mssql/column_definition/actions.mjs +9 -6
- package/lib/parse/deprecated/mssql/column_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/column_definition/index.mjs +28 -28
- package/lib/parse/deprecated/mssql/constraint_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/constraint_definition/index.mjs +24 -24
- package/lib/parse/deprecated/mssql/expression.cjs +1 -1
- package/lib/parse/deprecated/mssql/expression.mjs +28 -27
- package/lib/parse/deprecated/mssql/fk_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/fk_definition/index.mjs +20 -20
- package/lib/parse/deprecated/mssql/index_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/index_definition/index.mjs +21 -21
- package/lib/parse/deprecated/mssql/keyword_utils.cjs +1 -1
- package/lib/parse/deprecated/mssql/keyword_utils.mjs +13 -13
- package/lib/parse/deprecated/mssql/statements/actions.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/actions.mjs +36 -33
- package/lib/parse/deprecated/mssql/statements/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/index.mjs +28 -28
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.mjs +24 -24
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.mjs +16 -16
- package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.mjs +31 -31
- package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.mjs +20 -20
- package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.mjs +21 -21
- package/lib/parse/deprecated/mssql/utils.cjs +1 -1
- package/lib/parse/deprecated/mssql/utils.mjs +21 -20
- package/lib/parse/deprecated/mssql/whitespaces.cjs +1 -1
- package/lib/parse/deprecated/mssql/whitespaces.mjs +11 -11
- package/lib/parse/deprecated/mysqlParser.cjs +6 -6
- package/lib/parse/deprecated/mysqlParser.mjs +20 -18
- package/lib/parse/deprecated/postgresParser.cjs +2 -2
- package/lib/parse/deprecated/postgresParser.mjs +25 -23
- package/lib/parse/deprecated/schemarbParser.cjs +10 -10
- package/lib/parse/deprecated/schemarbParser.mjs +313 -311
- package/lib/utils/version.cjs +1 -1
- package/lib/utils/version.mjs +1 -1
- package/package.json +2 -2
- package/lib/package.json.cjs +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("
|
|
2
|
-
`)}\nSELECT * FROM dual;`:`INSERT INTO ${s} ${c}\nVALUES (${
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/flatten.cjs"),t=require("../node_modules/lodash-es/concat.cjs"),n=require("../node_modules/lodash-es/forEach.cjs"),r=require("../node_modules/lodash-es/isEmpty.cjs"),i=require("../node_modules/lodash-es/lodash.cjs"),a=require("./utils.cjs");let o=require("@dbml/parse");i.init_lodash();var s=class{static exportRecords(e){let t=Object.values(e.records||{}).filter(e=>!e.example);return r.default(t)?[]:t.map(e=>{let{schemaName:t,tableName:n,columns:r,values:i}=e,s=t?`"${t}"."${n}"`:`"${n}"`,c=r.length>0?`("${r.join(`", "`)}")`:``,l=e=>{if(e.value===null)return`NULL`;if(e.type===`expression`||(0,o.isNumericType)(e.type))return e.value;if((0,o.isBooleanType)(e.type))return String(e.value).toUpperCase()===`TRUE`?`1`:`0`;if((0,o.isDateTimeType)(e.type)){let t=a.parseIsoDatetime(e.value);if(t){let{datetime:e,hasTimezone:n}=t,r=a.formatDatetimeForOracle(e,n);return n?`TO_TIMESTAMP_TZ('${r}', 'YYYY-MM-DD HH24:MI:SS.FF3 TZH:TZM')`:`TO_TIMESTAMP('${r}', 'YYYY-MM-DD HH24:MI:SS.FF3')`}return`'${e.value.replace(/'/g,`''`)}'`}return(0,o.isStringType)(e.type)?`'${e.value.replace(/'/g,`''`)}'`:(0,o.isBinaryType)(e.type)?`HEXTORAW('${e.value}')`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`};return i.length>1?`INSERT ALL\n${i.map(e=>` INTO ${s} ${c} VALUES (${e.map(l).join(`, `)})`).join(`
|
|
2
|
+
`)}\nSELECT * FROM dual;`:`INSERT INTO ${s} ${c}\nVALUES (${i[0].map(l).join(`, `)});`})}static buildSchemaToTableNameSetMap(e){let t=new Map;return n.default(e.tables,n=>{let r=e.schemas[n.schemaId],i=t.get(r.name);if(!i){t.set(r.name,new Set([n.name]));return}i.add(n.name)}),t}static buildTableNameWithSchema(e,t,n){return`${a.shouldPrintSchema(t,e)?`${a.escapeObjectName(t.name,`oracle`)}.`:``}${a.escapeObjectName(n.name,`oracle`)}`}static exportSchema(e){return`CREATE USER ${a.escapeObjectName(e,`oracle`)}\nNO AUTHENTICATION
|
|
3
3
|
DEFAULT TABLESPACE system
|
|
4
4
|
TEMPORARY TABLESPACE temp
|
|
5
5
|
QUOTA UNLIMITED ON system;
|
|
6
|
-
`}static getFieldLines(t
|
|
7
|
-
`)}\n);\n`})}static buildReferenceFieldNamesString(e,t){return`(${e.map(e=>`"${t.fields[e].name}"`).join(`, `)})`}static buildTableManyToMany(e,t,n){let r=`CREATE TABLE ${n} (\n`;e.forEach((e,t)=>{r+=` "${t}" ${e},\n`}),t.forEach((e,t)=>{r+=` "${t}" ${e},\n`});let i=[...e.keys()].join("`, `"),a=[...t.keys()].join("`, `");return r+=` PRIMARY KEY ("${i}", "${a}")\n);\n`,r}static buildForeignKeyManyToMany(e,t,n,r){return`ALTER TABLE ${e} ADD FOREIGN KEY ("${[...t.keys()].join("`, `")}") REFERENCES ${n} ${r} DEFERRABLE INITIALLY IMMEDIATE;\n`}static exportReferencesAndNewTablesIfExists(t,
|
|
8
|
-
`,
|
|
9
|
-
`,
|
|
10
|
-
`)}};exports.default=
|
|
6
|
+
`}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=a.escapeObjectName(n.name,`oracle`),i=r;if(n.enumId){let e=t.enums[n.enumId].valueIds.map(e=>`'${t.enumValues[e].name}'`).join(`, `);i+=` nvarchar2(255) CHECK (${r} IN (${e}))`}else i+=` ${n.type.type_name}`;let o={...n};if(o.increment&&(i+=` GENERATED AS IDENTITY`,o.dbdefault=null,o.not_null=!1),o.dbdefault&&(o.dbdefault.type===`boolean`&&(o.dbdefault.value===null||typeof o.dbdefault.value==`string`&&o.dbdefault.value.toLowerCase()===`null`)||(o.dbdefault.type===`string`?i+=` DEFAULT '${o.dbdefault.value}'`:i+=` DEFAULT ${o.dbdefault.value}`)),o.unique&&(i+=` UNIQUE`),o.pk&&(i+=` PRIMARY KEY`),o.not_null&&(i+=` NOT NULL`),o.checkIds&&o.checkIds.length>0)if(o.checkIds.length===1){let e=t.checks[o.checkIds[0]];e.name&&(i+=` CONSTRAINT "${e.name}"`),i+=` CHECK (${e.expression})`}else{let e=o.checkIds.map(e=>`(${t.checks[e].expression})`);i+=` CHECK (${e.join(` AND `)})`}return i})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT "${n.name}" `),r+=`CHECK (${n.expression})`,r})}static getTableContents(e,t){return e.map(e=>({tableId:e,fieldContents:this.getFieldLines(e,t),checkContents:this.getCheckLines(e,t),compositePKs:this.getCompositePKs(e,t)}))}static exportTables(e,t){return this.getTableContents(e,t).map(e=>{let n=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=t.tables[e.tableId],i=t.schemas[r.schemaId];return`CREATE TABLE ${this.buildTableNameWithSchema(t,i,r)} (\n${n.map(e=>` ${e}`).join(`,
|
|
7
|
+
`)}\n);\n`})}static buildReferenceFieldNamesString(e,t){return`(${e.map(e=>`"${t.fields[e].name}"`).join(`, `)})`}static buildTableManyToMany(e,t,n){let r=`CREATE TABLE ${n} (\n`;e.forEach((e,t)=>{r+=` "${t}" ${e},\n`}),t.forEach((e,t)=>{r+=` "${t}" ${e},\n`});let i=[...e.keys()].join("`, `"),a=[...t.keys()].join("`, `");return r+=` PRIMARY KEY ("${i}", "${a}")\n);\n`,r}static buildForeignKeyManyToMany(e,t,n,r){return`ALTER TABLE ${e} ADD FOREIGN KEY ("${[...t.keys()].join("`, `")}") REFERENCES ${n} ${r} DEFERRABLE INITIALLY IMMEDIATE;\n`}static exportReferencesAndNewTablesIfExists(e,t,n){let r={refs:[],tables:[]};return e.forEach(e=>{let i=t.refs[e],s=i.endpointIds.findIndex(e=>(0,o.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=i.endpointIds[1-c],u=t.endpoints[l],d=t.fields[u.fieldIds[0]],f=t.tables[d.tableId],p=t.schemas[f.schemaId],m=this.buildReferenceFieldNamesString(u.fieldIds,t),h=i.endpointIds[c],g=t.endpoints[h],_=t.fields[g.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildReferenceFieldNamesString(g.fieldIds,t);if(s!==-1){let e=`ALTER TABLE ${this.buildTableNameWithSchema(t,p,f)} ADD`;i.name&&(e+=` CONSTRAINT ${a.escapeObjectName(i.name,`oracle`)}`);let n=this.buildTableNameWithSchema(t,y,v);e+=` FOREIGN KEY ${m} REFERENCES ${n} ${b}`,i.onDelete&&(e+=` ON DELETE ${i.onDelete.toUpperCase()}`),e+=` DEFERRABLE INITIALLY IMMEDIATE;
|
|
8
|
+
`,r.refs.push(e);return}let x=a.buildJunctionFields1(g.fieldIds,t),S=a.buildJunctionFields2(u.fieldIds,t,x),C=a.buildUniqueTableName(y,v.name,f.name,n),w=n.get(y);w?w.add(C):n.set(y,new Set([C]));let T=`${a.shouldPrintSchema(y,t)?`"${y.name}".`:``}"${C}"`;r.tables.push(this.buildTableManyToMany(x,S,T));let E=this.buildTableNameWithSchema(t,y,v);r.refs.push(this.buildForeignKeyManyToMany(T,x,E,b));let D=this.buildTableNameWithSchema(t,p,f);r.refs.push(this.buildForeignKeyManyToMany(T,S,D,m))}),r}static exportReferenceGrants(e,t){if(Object.keys(e.schemas).length<=1)return[];let n=[];return t.forEach(t=>{let r=e.refs[t],i=r.endpointIds.findIndex(t=>e.endpoints[t].relation===`1`),a=i===-1?0:i,o=r.endpointIds[a],s=e.endpoints[o],c=e.fields[s.fieldIds[0]],l=e.tables[c.tableId],u=e.schemas[l.schemaId],d=r.endpointIds[1-a],f=e.endpoints[d],p=e.fields[f.fieldIds[0]],m=e.tables[p.tableId],h=e.schemas[m.schemaId];if(u.name===h.name){n.push(``);return}let g=this.buildTableNameWithSchema(e,u,l);if(n.push(g),i!==-1)return;let _=this.buildTableNameWithSchema(e,h,m);n.push(_)}),n.filter((e,t)=>e&&n.indexOf(e)===t).map(e=>`GRANT REFERENCES ON ${e} TO PUBLIC;\n`)}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map(e=>{let n=t.indexes[e],r=t.tables[n.tableId],i=t.schemas[r.schemaId],o=`CREATE`;n.unique&&(o+=` UNIQUE`),o+=` INDEX`,n.name&&(o+=` ${a.escapeObjectName(n.name,`oracle`)}`);let s=this.buildTableNameWithSchema(t,i,r);o+=` ON ${s}`;let c=[];n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`${n.value}`:`"${n.value}"`,c.push(r)});let l=c.join(`, `);return o+=` (${l});\n`,o})}static exportComments(e,t){return e.map(e=>{let n=`COMMENT ON`,r=t.tables[e.tableId],i=t.schemas[r.schemaId],o=this.buildTableNameWithSchema(t,i,r);switch(e.type){case`table`:n+=` TABLE ${o} IS '${r.note.replace(/'/g,`''`)}'`;break;case`column`:{let r=t.fields[e.fieldId];n+=` COLUMN ${o}.${a.escapeObjectName(r.name,`oracle`)} IS '${r.note.replace(/'/g,`''`)}'`;break}default:break}return n+=`;
|
|
9
|
+
`,n})}static export(n){let i=n.database[1],o=this.buildSchemaToTableNameSetMap(n),s=i.schemaIds.reduce((t,i)=>{let s=n.schemas[i],{tableIds:c,refIds:l}=s;a.shouldPrintSchema(s,n)&&t.schemas.push(this.exportSchema(s.name)),r.default(c)||t.tables.push(...this.exportTables(c,n));let u=e.default(c.map(e=>n.tables[e].indexIds));r.default(u)||t.indexes.push(...this.exportIndexes(u,n));let d=e.default(c.map(e=>{let{fieldIds:t,note:r}=n.tables[e],i=t.filter(e=>n.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return r?[{type:`table`,tableId:e}].concat(i):i}));if(r.default(d)||t.comments.push(...this.exportComments(d,n)),!r.default(l)){let{refs:e,tables:r}=this.exportReferencesAndNewTablesIfExists(l,n,o);t.tables.push(...r),t.refs.push(...e),t.referenceGrants.push(...this.exportReferenceGrants(n,l))}return t},{schemas:[],tables:[],indexes:[],comments:[],referenceGrants:[],refs:[]}),c=this.exportRecords(n),l=r.default(c)?[]:[`-- Disable constraint checking for INSERT`,`SET CONSTRAINTS ALL DEFERRED;`,``,...c,``,`SET CONSTRAINTS ALL IMMEDIATE;`,`COMMIT;`];return t.default(s.schemas,s.tables,s.indexes,s.comments,s.referenceGrants,s.refs,l).join(`
|
|
10
|
+
`)}};exports.default=s;
|
|
@@ -1,31 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import e from "../node_modules/lodash-es/flatten.mjs";
|
|
2
|
+
import t from "../node_modules/lodash-es/concat.mjs";
|
|
3
|
+
import n from "../node_modules/lodash-es/forEach.mjs";
|
|
4
|
+
import r from "../node_modules/lodash-es/isEmpty.mjs";
|
|
5
|
+
import { init_lodash as i } from "../node_modules/lodash-es/lodash.mjs";
|
|
6
|
+
import { buildJunctionFields1 as a, buildJunctionFields2 as o, buildUniqueTableName as s, escapeObjectName as c, formatDatetimeForOracle as l, parseIsoDatetime as u, shouldPrintSchema as d } from "./utils.mjs";
|
|
7
|
+
import { isBinaryType as f, isBooleanType as p, isDateTimeType as m, isNumericType as h, isStringType as g, parseCardinality as _ } from "@dbml/parse";
|
|
4
8
|
//#region src/export/OracleExporter.js
|
|
5
|
-
|
|
9
|
+
i();
|
|
10
|
+
var v = class {
|
|
6
11
|
static exportRecords(e) {
|
|
7
12
|
let t = Object.values(e.records || {}).filter((e) => !e.example);
|
|
8
|
-
return
|
|
9
|
-
let { schemaName: t, tableName: n, columns: r, values:
|
|
13
|
+
return r(t) ? [] : t.map((e) => {
|
|
14
|
+
let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `"${t}"."${n}"` : `"${n}"`, o = r.length > 0 ? `("${r.join("\", \"")}")` : "", s = (e) => {
|
|
10
15
|
if (e.value === null) return "NULL";
|
|
11
|
-
if (e.type === "expression" ||
|
|
12
|
-
if (
|
|
13
|
-
if (
|
|
14
|
-
let t =
|
|
16
|
+
if (e.type === "expression" || h(e.type)) return e.value;
|
|
17
|
+
if (p(e.type)) return String(e.value).toUpperCase() === "TRUE" ? "1" : "0";
|
|
18
|
+
if (m(e.type)) {
|
|
19
|
+
let t = u(e.value);
|
|
15
20
|
if (t) {
|
|
16
|
-
let { datetime: e, hasTimezone: n } = t, r =
|
|
21
|
+
let { datetime: e, hasTimezone: n } = t, r = l(e, n);
|
|
17
22
|
return n ? `TO_TIMESTAMP_TZ('${r}', 'YYYY-MM-DD HH24:MI:SS.FF3 TZH:TZM')` : `TO_TIMESTAMP('${r}', 'YYYY-MM-DD HH24:MI:SS.FF3')`;
|
|
18
23
|
}
|
|
19
24
|
return `'${e.value.replace(/'/g, "''")}'`;
|
|
20
25
|
}
|
|
21
|
-
return
|
|
26
|
+
return g(e.type) ? `'${e.value.replace(/'/g, "''")}'` : f(e.type) ? `HEXTORAW('${e.value}')` : `CAST('${e.value.replace(/'/g, "''")}' AS ${e.type})`;
|
|
22
27
|
};
|
|
23
|
-
return
|
|
28
|
+
return i.length > 1 ? `INSERT ALL\n${i.map((e) => ` INTO ${a} ${o} VALUES (${e.map(s).join(", ")})`).join("\n")}\nSELECT * FROM dual;` : `INSERT INTO ${a} ${o}\nVALUES (${i[0].map(s).join(", ")});`;
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
31
|
static buildSchemaToTableNameSetMap(e) {
|
|
27
32
|
let t = /* @__PURE__ */ new Map();
|
|
28
|
-
return
|
|
33
|
+
return n(e.tables, (n) => {
|
|
29
34
|
let r = e.schemas[n.schemaId], i = t.get(r.name);
|
|
30
35
|
if (!i) {
|
|
31
36
|
t.set(r.name, new Set([n.name]));
|
|
@@ -35,10 +40,10 @@ var _ = class {
|
|
|
35
40
|
}), t;
|
|
36
41
|
}
|
|
37
42
|
static buildTableNameWithSchema(e, t, n) {
|
|
38
|
-
return `${
|
|
43
|
+
return `${d(t, e) ? `${c(t.name, "oracle")}.` : ""}${c(n.name, "oracle")}`;
|
|
39
44
|
}
|
|
40
45
|
static exportSchema(e) {
|
|
41
|
-
return `CREATE USER ${
|
|
46
|
+
return `CREATE USER ${c(e, "oracle")}\nNO AUTHENTICATION
|
|
42
47
|
DEFAULT TABLESPACE system
|
|
43
48
|
TEMPORARY TABLESPACE temp
|
|
44
49
|
QUOTA UNLIMITED ON system;
|
|
@@ -46,20 +51,20 @@ QUOTA UNLIMITED ON system;
|
|
|
46
51
|
}
|
|
47
52
|
static getFieldLines(e, t) {
|
|
48
53
|
return t.tables[e].fieldIds.map((e) => {
|
|
49
|
-
let n = t.fields[e],
|
|
54
|
+
let n = t.fields[e], r = c(n.name, "oracle"), i = r;
|
|
50
55
|
if (n.enumId) {
|
|
51
56
|
let e = t.enums[n.enumId].valueIds.map((e) => `'${t.enumValues[e].name}'`).join(", ");
|
|
52
|
-
|
|
53
|
-
} else
|
|
54
|
-
let
|
|
55
|
-
if (
|
|
56
|
-
let e = t.checks[
|
|
57
|
-
e.name && (
|
|
57
|
+
i += ` nvarchar2(255) CHECK (${r} IN (${e}))`;
|
|
58
|
+
} else i += ` ${n.type.type_name}`;
|
|
59
|
+
let a = { ...n };
|
|
60
|
+
if (a.increment && (i += " GENERATED AS IDENTITY", a.dbdefault = null, a.not_null = !1), a.dbdefault && (a.dbdefault.type === "boolean" && (a.dbdefault.value === null || typeof a.dbdefault.value == "string" && a.dbdefault.value.toLowerCase() === "null") || (a.dbdefault.type === "string" ? i += ` DEFAULT '${a.dbdefault.value}'` : i += ` DEFAULT ${a.dbdefault.value}`)), a.unique && (i += " UNIQUE"), a.pk && (i += " PRIMARY KEY"), a.not_null && (i += " NOT NULL"), a.checkIds && a.checkIds.length > 0) if (a.checkIds.length === 1) {
|
|
61
|
+
let e = t.checks[a.checkIds[0]];
|
|
62
|
+
e.name && (i += ` CONSTRAINT "${e.name}"`), i += ` CHECK (${e.expression})`;
|
|
58
63
|
} else {
|
|
59
|
-
let e =
|
|
60
|
-
|
|
64
|
+
let e = a.checkIds.map((e) => `(${t.checks[e].expression})`);
|
|
65
|
+
i += ` CHECK (${e.join(" AND ")})`;
|
|
61
66
|
}
|
|
62
|
-
return
|
|
67
|
+
return i;
|
|
63
68
|
});
|
|
64
69
|
}
|
|
65
70
|
static getCompositePKs(e, t) {
|
|
@@ -113,29 +118,29 @@ QUOTA UNLIMITED ON system;
|
|
|
113
118
|
static buildForeignKeyManyToMany(e, t, n, r) {
|
|
114
119
|
return `ALTER TABLE ${e} ADD FOREIGN KEY ("${[...t.keys()].join("`, `")}") REFERENCES ${n} ${r} DEFERRABLE INITIALLY IMMEDIATE;\n`;
|
|
115
120
|
}
|
|
116
|
-
static exportReferencesAndNewTablesIfExists(
|
|
117
|
-
let
|
|
121
|
+
static exportReferencesAndNewTablesIfExists(e, t, n) {
|
|
122
|
+
let r = {
|
|
118
123
|
refs: [],
|
|
119
124
|
tables: []
|
|
120
125
|
};
|
|
121
|
-
return
|
|
122
|
-
let
|
|
123
|
-
if (
|
|
124
|
-
let e = `ALTER TABLE ${this.buildTableNameWithSchema(
|
|
125
|
-
|
|
126
|
-
let
|
|
127
|
-
e += ` FOREIGN KEY ${v} REFERENCES ${
|
|
126
|
+
return e.forEach((e) => {
|
|
127
|
+
let i = t.refs[e], l = i.endpointIds.findIndex((e) => _(t.endpoints[e].relation).max === 1), u = l === -1 ? 0 : l, f = i.endpointIds[1 - u], p = t.endpoints[f], m = t.fields[p.fieldIds[0]], h = t.tables[m.tableId], g = t.schemas[h.schemaId], v = this.buildReferenceFieldNamesString(p.fieldIds, t), y = i.endpointIds[u], b = t.endpoints[y], x = t.fields[b.fieldIds[0]], S = t.tables[x.tableId], C = t.schemas[S.schemaId], w = this.buildReferenceFieldNamesString(b.fieldIds, t);
|
|
128
|
+
if (l !== -1) {
|
|
129
|
+
let e = `ALTER TABLE ${this.buildTableNameWithSchema(t, g, h)} ADD`;
|
|
130
|
+
i.name && (e += ` CONSTRAINT ${c(i.name, "oracle")}`);
|
|
131
|
+
let n = this.buildTableNameWithSchema(t, C, S);
|
|
132
|
+
e += ` FOREIGN KEY ${v} REFERENCES ${n} ${w}`, i.onDelete && (e += ` ON DELETE ${i.onDelete.toUpperCase()}`), e += " DEFERRABLE INITIALLY IMMEDIATE;\n", r.refs.push(e);
|
|
128
133
|
return;
|
|
129
134
|
}
|
|
130
|
-
let T =
|
|
131
|
-
O ? O.add(D) :
|
|
132
|
-
let k = `${
|
|
133
|
-
|
|
134
|
-
let A = this.buildTableNameWithSchema(
|
|
135
|
-
|
|
136
|
-
let j = this.buildTableNameWithSchema(
|
|
137
|
-
|
|
138
|
-
}),
|
|
135
|
+
let T = a(b.fieldIds, t), E = o(p.fieldIds, t, T), D = s(C, S.name, h.name, n), O = n.get(C);
|
|
136
|
+
O ? O.add(D) : n.set(C, new Set([D]));
|
|
137
|
+
let k = `${d(C, t) ? `"${C.name}".` : ""}"${D}"`;
|
|
138
|
+
r.tables.push(this.buildTableManyToMany(T, E, k));
|
|
139
|
+
let A = this.buildTableNameWithSchema(t, C, S);
|
|
140
|
+
r.refs.push(this.buildForeignKeyManyToMany(k, T, A, w));
|
|
141
|
+
let j = this.buildTableNameWithSchema(t, g, h);
|
|
142
|
+
r.refs.push(this.buildForeignKeyManyToMany(k, E, j, v));
|
|
143
|
+
}), r;
|
|
139
144
|
}
|
|
140
145
|
static exportReferenceGrants(e, t) {
|
|
141
146
|
if (Object.keys(e.schemas).length <= 1) return [];
|
|
@@ -154,29 +159,29 @@ QUOTA UNLIMITED ON system;
|
|
|
154
159
|
}
|
|
155
160
|
static exportIndexes(e, t) {
|
|
156
161
|
return e.filter((e) => !t.indexes[e].pk).map((e) => {
|
|
157
|
-
let n = t.indexes[e],
|
|
158
|
-
n.unique && (
|
|
159
|
-
let
|
|
160
|
-
|
|
161
|
-
let
|
|
162
|
+
let n = t.indexes[e], r = t.tables[n.tableId], i = t.schemas[r.schemaId], a = "CREATE";
|
|
163
|
+
n.unique && (a += " UNIQUE"), a += " INDEX", n.name && (a += ` ${c(n.name, "oracle")}`);
|
|
164
|
+
let o = this.buildTableNameWithSchema(t, i, r);
|
|
165
|
+
a += ` ON ${o}`;
|
|
166
|
+
let s = [];
|
|
162
167
|
n.columnIds.forEach((e) => {
|
|
163
168
|
let n = t.indexColumns[e], r = "";
|
|
164
|
-
r = n.type === "expression" ? `${n.value}` : `"${n.value}"`,
|
|
169
|
+
r = n.type === "expression" ? `${n.value}` : `"${n.value}"`, s.push(r);
|
|
165
170
|
});
|
|
166
|
-
let l =
|
|
167
|
-
return
|
|
171
|
+
let l = s.join(", ");
|
|
172
|
+
return a += ` (${l});\n`, a;
|
|
168
173
|
});
|
|
169
174
|
}
|
|
170
175
|
static exportComments(e, t) {
|
|
171
176
|
return e.map((e) => {
|
|
172
|
-
let n = "COMMENT ON",
|
|
177
|
+
let n = "COMMENT ON", r = t.tables[e.tableId], i = t.schemas[r.schemaId], a = this.buildTableNameWithSchema(t, i, r);
|
|
173
178
|
switch (e.type) {
|
|
174
179
|
case "table":
|
|
175
|
-
n += ` TABLE ${
|
|
180
|
+
n += ` TABLE ${a} IS '${r.note.replace(/'/g, "''")}'`;
|
|
176
181
|
break;
|
|
177
182
|
case "column": {
|
|
178
|
-
let
|
|
179
|
-
n += ` COLUMN ${
|
|
183
|
+
let r = t.fields[e.fieldId];
|
|
184
|
+
n += ` COLUMN ${a}.${c(r.name, "oracle")} IS '${r.note.replace(/'/g, "''")}'`;
|
|
180
185
|
break;
|
|
181
186
|
}
|
|
182
187
|
default: break;
|
|
@@ -184,26 +189,26 @@ QUOTA UNLIMITED ON system;
|
|
|
184
189
|
return n += ";\n", n;
|
|
185
190
|
});
|
|
186
191
|
}
|
|
187
|
-
static export(
|
|
188
|
-
let
|
|
189
|
-
let
|
|
190
|
-
o
|
|
191
|
-
let l =
|
|
192
|
-
|
|
193
|
-
let
|
|
194
|
-
let { fieldIds:
|
|
192
|
+
static export(n) {
|
|
193
|
+
let i = n.database[1], a = this.buildSchemaToTableNameSetMap(n), o = i.schemaIds.reduce((t, i) => {
|
|
194
|
+
let o = n.schemas[i], { tableIds: s, refIds: c } = o;
|
|
195
|
+
d(o, n) && t.schemas.push(this.exportSchema(o.name)), r(s) || t.tables.push(...this.exportTables(s, n));
|
|
196
|
+
let l = e(s.map((e) => n.tables[e].indexIds));
|
|
197
|
+
r(l) || t.indexes.push(...this.exportIndexes(l, n));
|
|
198
|
+
let u = e(s.map((e) => {
|
|
199
|
+
let { fieldIds: t, note: r } = n.tables[e], i = t.filter((e) => n.fields[e].note).map((t) => ({
|
|
195
200
|
type: "column",
|
|
196
|
-
fieldId:
|
|
197
|
-
tableId:
|
|
201
|
+
fieldId: t,
|
|
202
|
+
tableId: e
|
|
198
203
|
}));
|
|
199
204
|
return r ? [{
|
|
200
205
|
type: "table",
|
|
201
|
-
tableId:
|
|
206
|
+
tableId: e
|
|
202
207
|
}].concat(i) : i;
|
|
203
208
|
}));
|
|
204
|
-
if (u
|
|
205
|
-
let { refs:
|
|
206
|
-
t.tables.push(...
|
|
209
|
+
if (r(u) || t.comments.push(...this.exportComments(u, n)), !r(c)) {
|
|
210
|
+
let { refs: e, tables: r } = this.exportReferencesAndNewTablesIfExists(c, n, a);
|
|
211
|
+
t.tables.push(...r), t.refs.push(...e), t.referenceGrants.push(...this.exportReferenceGrants(n, c));
|
|
207
212
|
}
|
|
208
213
|
return t;
|
|
209
214
|
}, {
|
|
@@ -213,17 +218,17 @@ QUOTA UNLIMITED ON system;
|
|
|
213
218
|
comments: [],
|
|
214
219
|
referenceGrants: [],
|
|
215
220
|
refs: []
|
|
216
|
-
}),
|
|
221
|
+
}), s = this.exportRecords(n), c = r(s) ? [] : [
|
|
217
222
|
"-- Disable constraint checking for INSERT",
|
|
218
223
|
"SET CONSTRAINTS ALL DEFERRED;",
|
|
219
224
|
"",
|
|
220
|
-
...
|
|
225
|
+
...s,
|
|
221
226
|
"",
|
|
222
227
|
"SET CONSTRAINTS ALL IMMEDIATE;",
|
|
223
228
|
"COMMIT;"
|
|
224
229
|
];
|
|
225
|
-
return
|
|
230
|
+
return t(o.schemas, o.tables, o.indexes, o.comments, o.referenceGrants, o.refs, c).join("\n");
|
|
226
231
|
}
|
|
227
232
|
};
|
|
228
233
|
//#endregion
|
|
229
|
-
export {
|
|
234
|
+
export { v as default };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("
|
|
2
|
-
`)};`}).filter(Boolean)}static exportEnums(t
|
|
3
|
-
`)}\n);\n`]})}static getFieldLines(
|
|
4
|
-
`)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`"${t.fields[e].name}"`).join(`, `)})`}static buildTableManyToMany(t,n,r,
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/flatten.cjs"),t=require("../node_modules/lodash-es/concat.cjs"),n=require("../node_modules/lodash-es/isEmpty.cjs"),r=require("../node_modules/lodash-es/lodash.cjs"),i=require("./utils.cjs"),a=require("../model_structure/utils.cjs");let o=require("@dbml/parse");r.init_lodash();var s=`SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE PRECISION.SMALLSERIAL.SERIAL.BIGSERIAL.FLOAT.MONEY.CHARACTER.CHAR.CHARACTER VARYING.VARCHAR.TEXT.NAME.BPCHAR.BYTEA.TIMESTAMP.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.DATE.TIME.TIME WITH TIME ZONE.TIME WITHOUT TIME ZONE.INTERVAL.BOOLEAN.BOOL.POINT.LINE.LSEG.BOX.PATH.POLYGON.CIRCLE.CIDR.INET.MACADDR.MACADDR8.BIT.BIT VARYING.VARBIT.UUID.XML.JSON.JSONB.INT4RANGE.INT8RANGE.NUMRANGE.TSRANGE.TSTZRANGE.DATERANGE.OID.REGCLASS.REGCOLLATION.REGCONFIG.REGDICTIONARY.REGNAMESPACE.REGOPER.REGOPERATOR.REGPROC.REGPROCEDURE.REGROLE.REGTYPE.PG_LSN.VOID.RECORD.TRIGGER.EVENT_TRIGGER.PG_DDL_COMMAND.UNKNOWN.ANYELEMENT.ANYARRAY.ANYNONARRAY.ANYENUM.ANYRANGE.ANY.CSTRING.INTERNAL.LANGUAGE_HANDLER.FDW_HANDLER.INDEX_AM_HANDLER.TSM_HANDLER.OPAQUE`.split(`.`),c=[`USER`],l=class r{static exportRecords(e){let t=Object.values(e.records||{}).filter(e=>!e.example);return n.default(t)?[]:t.map(e=>{let{schemaName:t,tableName:n,columns:r,values:i}=e;if(!i||i.length===0)return null;let a=t?`"${t}"."${n}"`:`"${n}"`,s=r.length>0?`(${r.map(e=>`"${e}"`).join(`, `)})`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,o.isNumericType)(e.type)?e.value:(0,o.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,o.isStringType)(e.type)||(0,o.isDateTimeType)(e.type)||(0,o.isBinaryType)(e.type)?`'${String(e.value).replace(/'/g,`''`)}'`:`CAST('${String(e.value).replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${a} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
|
|
2
|
+
`)};`}).filter(Boolean)}static exportEnums(e,t){return e.map(e=>{let n=t.enums[e],r=t.schemas[n.schemaId],a=`${i.shouldPrintSchema(r,t)?`"${r.name}".`:``}"${n.name}"`;return[a,`CREATE TYPE ${a} AS ENUM (\n${n.valueIds.map(e=>` '${t.enumValues[e].name}'`).join(`,
|
|
3
|
+
`)}\n);\n`]})}static getFieldLines(e,t,n){return t.tables[e].fieldIds.map(e=>{let r=t.fields[e],o=``;if(r.increment){let e=new Set([`BIGINT`,`INT`,`INTEGER`,`SMALLINT`]),t=new Set([`SMALLSERIAL`,`SERIAL`,`BIGSERIAL`]),n=r.type.type_name.toUpperCase(),i=``;i=e.has(n)?`${n} GENERATED BY DEFAULT AS IDENTITY`:t.has(n)?n:`SERIAL`,o=`"${r.name}" ${i}`}else if(!r.type.schemaName||!a.shouldPrintSchemaName(r.type.schemaName)){let e=r.type.type_name,t=e.toUpperCase(),n=!s.includes(t)&&(i.hasWhiteSpaceOrUpperCase(e)||c.includes(t))?`"${e}"`:e;o=`"${r.name}" ${n}`}else if(r.type.originalTypeName)o=`"${r.name}" "${r.type.schemaName}"."${r.type.originalTypeName}"`;else{let e=`${i.hasWhiteSpaceOrUpperCase(r.type.schemaName)?`"${r.type.schemaName}".`:`${r.type.schemaName}.`}${i.hasWhiteSpaceOrUpperCase(r.type.type_name)?`"${r.type.type_name}"`:r.type.type_name}`,t=`"${r.type.schemaName}"."${r.type.type_name}"`;!n.has(t)&&!i.hasWhiteSpace(t)&&(e=e.replaceAll(`"`,``)),o=`"${r.name}" ${e}`}if(r.unique&&(o+=` UNIQUE`),r.pk&&(o+=` PRIMARY KEY`),r.not_null&&(o+=` NOT NULL`),r.checkIds&&r.checkIds.length>0)if(r.checkIds.length===1){let e=t.checks[r.checkIds[0]];e.name&&(o+=` CONSTRAINT "${e.name}"`),o+=` CHECK (${e.expression})`}else{let e=r.checkIds.map(e=>`(${t.checks[e].expression})`);o+=` CHECK (${e.join(` AND `)})`}return r.dbdefault&&(r.dbdefault.type===`boolean`&&(r.dbdefault.value===null||typeof r.dbdefault.value==`string`&&r.dbdefault.value.toLowerCase()===`null`)||(r.dbdefault.type===`expression`?o+=` DEFAULT (${r.dbdefault.value})`:r.dbdefault.type===`string`?o+=` DEFAULT '${r.dbdefault.value}'`:o+=` DEFAULT ${r.dbdefault.value}`)),o})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT "${n.name}" `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(e,t,n){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t,n),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(e,t,n){return r.getTableContentArr(e,t,n).map(e=>{let n=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=t.tables[e.tableId],a=t.schemas[r.schemaId];return`CREATE TABLE ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}" (\n${n.map(e=>` ${e}`).join(`,
|
|
4
|
+
`)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`"${t.fields[e].name}"`).join(`, `)})`}static buildTableManyToMany(e,t,n,r,a){let o=`CREATE TABLE ${i.shouldPrintSchema(r,a)?`"${r.name}".`:``}"${n}" (\n`,s=[...e.keys()].join(`", "`),c=[...t.keys()].join(`", "`);return e.forEach((e,t)=>{o+=` "${t}" ${e},\n`}),t.forEach((e,t)=>{o+=` "${t}" ${e},\n`}),o+=` PRIMARY KEY ("${s}", "${c}")\n`,o+=`);
|
|
5
5
|
|
|
6
|
-
`,o}static buildForeignKeyManyToMany(t,n,r,
|
|
7
|
-
`;return
|
|
8
|
-
`,o})}static exportComments(t
|
|
9
|
-
`,
|
|
10
|
-
`)}};exports.default=
|
|
6
|
+
`,o}static buildForeignKeyManyToMany(e,t,n,r,a,o,s){let c=[...e.keys()].join(`", "`);return`ALTER TABLE ${i.shouldPrintSchema(a,s)?`"${a.name}".`:``}"${n}" ADD FOREIGN KEY ("${c}") REFERENCES ${i.shouldPrintSchema(o,s)?`"${o.name}".`:``}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,a=t.refs[e],s=a.endpointIds.findIndex(e=>(0,o.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=a.endpointIds[1-c],u=a.endpointIds[c],d=t.endpoints[l],f=t.endpoints[u],p=t.fields[f.fieldIds[0]],m=t.tables[p.tableId],h=t.schemas[m.schemaId],g=this.buildFieldName(f.fieldIds,t,`postgres`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`postgres`);if(s===-1){let e=i.buildJunctionFields1(f.fieldIds,t),a=i.buildJunctionFields2(d.fieldIds,t,e),o=i.buildNewTableName(m.name,v.name,n);r+=this.buildTableManyToMany(e,a,o,h,t),r+=this.buildForeignKeyManyToMany(e,g,o,m.name,h,h,t),r+=this.buildForeignKeyManyToMany(a,b,o,v.name,h,y,t)}else r=`ALTER TABLE ${i.shouldPrintSchema(y,t)?`"${y.name}".`:``}"${v.name}" ADD `,a.name&&(r+=`CONSTRAINT "${a.name}" `),r+=`FOREIGN KEY ${b} REFERENCES ${i.shouldPrintSchema(h,t)?`"${h.name}".`:``}"${m.name}" ${g}`,a.onDelete&&(r+=` ON DELETE ${a.onDelete.toUpperCase()}`),a.onUpdate&&(r+=` ON UPDATE ${a.onUpdate.toUpperCase()}`),r+=` DEFERRABLE INITIALLY IMMEDIATE;
|
|
7
|
+
`;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map(e=>{let n=t.indexes[e],r=t.tables[n.tableId],a=t.schemas[r.schemaId],o=`CREATE`;n.unique&&(o+=` UNIQUE`);let s=n.name?`"${n.name}"`:``;o+=` INDEX`,s&&(o+=` ${s}`),o+=` ON ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}"`,n.type&&(o+=` USING ${n.type.toUpperCase()}`);let c=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,c.push(r)}),o+=` (${c.join(`, `)})`,o+=`;
|
|
8
|
+
`,o})}static exportComments(e,t){return e.map(e=>{let n=`COMMENT ON`,r=t.tables[e.tableId],a=t.schemas[r.schemaId];switch(e.type){case`table`:n+=` TABLE ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}" IS '${r.note.replace(/'/g,`''`)}'`;break;case`column`:{let o=t.fields[e.fieldId];n+=` COLUMN ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}"."${o.name}" IS '${o.note.replace(/'/g,`''`)}'`;break}default:break}return n+=`;
|
|
9
|
+
`,n})}static export(a){let o=a.database[1],s=new Set(Object.values(a.tables).map(e=>e.name)),c=new Set,l=o.schemaIds.reduce((e,t)=>{let o=a.schemas[t],{enumIds:s}=o;return i.shouldPrintSchema(o,a)&&e.schemas.push(`CREATE SCHEMA "${o.name}";\n`),n.default(s)||r.exportEnums(s,a).forEach(t=>{let[n,r]=t;e.enums.push(r),c.add(n)}),e},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),u=o.schemaIds.reduce((t,i)=>{let{tableIds:o,refIds:l}=a.schemas[i];n.default(o)||t.tables.push(...r.exportTables(o,a,c));let u=e.default(o.map(e=>a.tables[e].indexIds));n.default(u)||t.indexes.push(...r.exportIndexes(u,a));let d=e.default(o.map(e=>{let{fieldIds:t,note:n}=a.tables[e],r=t.filter(e=>a.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return n?[{type:`table`,tableId:e}].concat(r):r}));return n.default(d)||t.comments.push(...r.exportComments(d,a)),n.default(l)||t.refs.push(...r.exportRefs(l,a,s)),t},l),d=r.exportRecords(a),f=n.default(d)?[]:[`-- Defer constraint checking for INSERT`,`BEGIN;`,`SET CONSTRAINTS ALL DEFERRED;`,``,...d,``,`SET CONSTRAINTS ALL IMMEDIATE;`,`COMMIT;`];return t.default(u.schemas,u.enums,u.tables,u.indexes,u.comments,u.refs,f).join(`
|
|
10
|
+
`)}};exports.default=l;
|