@dbml/core 10.3.0-alpha.0 → 10.3.0-alpha.1
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/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/mssql/column_definition/actions.cjs +1 -1
- package/lib/parse/deprecated/mssql/column_definition/actions.mjs +9 -6
- package/lib/parse/deprecated/mssql/expression.cjs +1 -1
- package/lib/parse/deprecated/mssql/expression.mjs +26 -25
- 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/utils.cjs +1 -1
- package/lib/parse/deprecated/mssql/utils.mjs +23 -22
- 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,28 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
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/isEmpty.mjs";
|
|
4
|
+
import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
|
|
5
|
+
import { buildJunctionFields1 as i, buildJunctionFields2 as a, buildNewTableName as o, hasWhiteSpace as s, hasWhiteSpaceOrUpperCase as c, shouldPrintSchema as l } from "./utils.mjs";
|
|
6
|
+
import { shouldPrintSchemaName as u } from "../model_structure/utils.mjs";
|
|
7
|
+
import { isBinaryType as d, isBooleanType as f, isDateTimeType as p, isNumericType as m, isStringType as h, parseCardinality as g } from "@dbml/parse";
|
|
5
8
|
//#region src/export/PostgresExporter.js
|
|
6
|
-
|
|
9
|
+
r();
|
|
10
|
+
var _ = /* @__PURE__ */ "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("."), v = ["USER"], y = class r {
|
|
7
11
|
static exportRecords(e) {
|
|
8
12
|
let t = Object.values(e.records || {}).filter((e) => !e.example);
|
|
9
|
-
return
|
|
13
|
+
return n(t) ? [] : t.map((e) => {
|
|
10
14
|
let { schemaName: t, tableName: n, columns: r, values: i } = e;
|
|
11
15
|
if (!i || i.length === 0) return null;
|
|
12
|
-
let a = t ? `"${t}"."${n}"` : `"${n}"`, o = r.length > 0 ? `(${r.map((e) => `"${e}"`).join(", ")})` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" ||
|
|
16
|
+
let a = t ? `"${t}"."${n}"` : `"${n}"`, o = r.length > 0 ? `(${r.map((e) => `"${e}"`).join(", ")})` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" || m(e.type) ? e.value : f(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "TRUE" : "FALSE" : h(e.type) || p(e.type) || d(e.type) ? `'${String(e.value).replace(/'/g, "''")}'` : `CAST('${String(e.value).replace(/'/g, "''")}' AS ${e.type})`;
|
|
13
17
|
return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(s).join(", ")})`).join(",\n ")};`;
|
|
14
18
|
}).filter(Boolean);
|
|
15
19
|
}
|
|
16
20
|
static exportEnums(e, t) {
|
|
17
21
|
return e.map((e) => {
|
|
18
|
-
let n = t.enums[e], r = t.schemas[n.schemaId], i = `${
|
|
22
|
+
let n = t.enums[e], r = t.schemas[n.schemaId], i = `${l(r, t) ? `"${r.name}".` : ""}"${n.name}"`;
|
|
19
23
|
return [i, `CREATE TYPE ${i} AS ENUM (\n${n.valueIds.map((e) => ` '${t.enumValues[e].name}'`).join(",\n")}\n);\n`];
|
|
20
24
|
});
|
|
21
25
|
}
|
|
22
26
|
static getFieldLines(e, t, n) {
|
|
23
27
|
return t.tables[e].fieldIds.map((e) => {
|
|
24
|
-
let
|
|
25
|
-
if (
|
|
28
|
+
let r = t.fields[e], i = "";
|
|
29
|
+
if (r.increment) {
|
|
26
30
|
let e = new Set([
|
|
27
31
|
"BIGINT",
|
|
28
32
|
"INT",
|
|
@@ -32,24 +36,24 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
|
|
|
32
36
|
"SMALLSERIAL",
|
|
33
37
|
"SERIAL",
|
|
34
38
|
"BIGSERIAL"
|
|
35
|
-
]), n =
|
|
36
|
-
|
|
37
|
-
} else if (!
|
|
38
|
-
let e =
|
|
39
|
-
|
|
40
|
-
} else if (
|
|
39
|
+
]), n = r.type.type_name.toUpperCase(), a = "";
|
|
40
|
+
a = e.has(n) ? `${n} GENERATED BY DEFAULT AS IDENTITY` : t.has(n) ? n : "SERIAL", i = `"${r.name}" ${a}`;
|
|
41
|
+
} else if (!r.type.schemaName || !u(r.type.schemaName)) {
|
|
42
|
+
let e = r.type.type_name, t = e.toUpperCase(), n = !_.includes(t) && (c(e) || v.includes(t)) ? `"${e}"` : e;
|
|
43
|
+
i = `"${r.name}" ${n}`;
|
|
44
|
+
} else if (r.type.originalTypeName) i = `"${r.name}" "${r.type.schemaName}"."${r.type.originalTypeName}"`;
|
|
41
45
|
else {
|
|
42
|
-
let e = `${
|
|
43
|
-
!n.has(t) && !
|
|
46
|
+
let e = `${c(r.type.schemaName) ? `"${r.type.schemaName}".` : `${r.type.schemaName}.`}${c(r.type.type_name) ? `"${r.type.type_name}"` : r.type.type_name}`, t = `"${r.type.schemaName}"."${r.type.type_name}"`;
|
|
47
|
+
!n.has(t) && !s(t) && (e = e.replaceAll("\"", "")), i = `"${r.name}" ${e}`;
|
|
44
48
|
}
|
|
45
|
-
if (
|
|
46
|
-
let e = t.checks[
|
|
47
|
-
e.name && (
|
|
49
|
+
if (r.unique && (i += " UNIQUE"), r.pk && (i += " PRIMARY KEY"), r.not_null && (i += " NOT NULL"), r.checkIds && r.checkIds.length > 0) if (r.checkIds.length === 1) {
|
|
50
|
+
let e = t.checks[r.checkIds[0]];
|
|
51
|
+
e.name && (i += ` CONSTRAINT "${e.name}"`), i += ` CHECK (${e.expression})`;
|
|
48
52
|
} else {
|
|
49
|
-
let e =
|
|
50
|
-
|
|
53
|
+
let e = r.checkIds.map((e) => `(${t.checks[e].expression})`);
|
|
54
|
+
i += ` CHECK (${e.join(" AND ")})`;
|
|
51
55
|
}
|
|
52
|
-
return
|
|
56
|
+
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" ? i += ` DEFAULT (${r.dbdefault.value})` : r.dbdefault.type === "string" ? i += ` DEFAULT '${r.dbdefault.value}'` : i += ` DEFAULT ${r.dbdefault.value}`)), i;
|
|
53
57
|
});
|
|
54
58
|
}
|
|
55
59
|
static getCompositePKs(e, t) {
|
|
@@ -72,57 +76,57 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
|
|
|
72
76
|
static getTableContentArr(e, t, n) {
|
|
73
77
|
return e.map((e) => ({
|
|
74
78
|
tableId: e,
|
|
75
|
-
fieldContents:
|
|
76
|
-
checkContents:
|
|
77
|
-
compositePKs:
|
|
79
|
+
fieldContents: r.getFieldLines(e, t, n),
|
|
80
|
+
checkContents: r.getCheckLines(e, t),
|
|
81
|
+
compositePKs: r.getCompositePKs(e, t)
|
|
78
82
|
}));
|
|
79
83
|
}
|
|
80
84
|
static exportTables(e, t, n) {
|
|
81
|
-
return
|
|
85
|
+
return r.getTableContentArr(e, t, n).map((e) => {
|
|
82
86
|
let n = [
|
|
83
87
|
...e.fieldContents,
|
|
84
88
|
...e.checkContents,
|
|
85
89
|
...e.compositePKs
|
|
86
90
|
], r = t.tables[e.tableId], i = t.schemas[r.schemaId];
|
|
87
|
-
return `CREATE TABLE ${
|
|
91
|
+
return `CREATE TABLE ${l(i, t) ? `"${i.name}".` : ""}"${r.name}" (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
|
|
88
92
|
});
|
|
89
93
|
}
|
|
90
94
|
static buildFieldName(e, t) {
|
|
91
95
|
return `(${e.map((e) => `"${t.fields[e].name}"`).join(", ")})`;
|
|
92
96
|
}
|
|
93
97
|
static buildTableManyToMany(e, t, n, r, i) {
|
|
94
|
-
let
|
|
98
|
+
let a = `CREATE TABLE ${l(r, i) ? `"${r.name}".` : ""}"${n}" (\n`, o = [...e.keys()].join("\", \""), s = [...t.keys()].join("\", \"");
|
|
95
99
|
return e.forEach((e, t) => {
|
|
96
|
-
|
|
100
|
+
a += ` "${t}" ${e},\n`;
|
|
97
101
|
}), t.forEach((e, t) => {
|
|
98
|
-
|
|
99
|
-
}),
|
|
102
|
+
a += ` "${t}" ${e},\n`;
|
|
103
|
+
}), a += ` PRIMARY KEY ("${o}", "${s}")\n`, a += ");\n\n", a;
|
|
100
104
|
}
|
|
101
|
-
static buildForeignKeyManyToMany(e, t, n, r, i,
|
|
102
|
-
let
|
|
103
|
-
return `ALTER TABLE ${
|
|
105
|
+
static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
|
|
106
|
+
let s = [...e.keys()].join("\", \"");
|
|
107
|
+
return `ALTER TABLE ${l(i, o) ? `"${i.name}".` : ""}"${n}" ADD FOREIGN KEY ("${s}") REFERENCES ${l(a, o) ? `"${a.name}".` : ""}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`;
|
|
104
108
|
}
|
|
105
|
-
static exportRefs(
|
|
106
|
-
return
|
|
107
|
-
let
|
|
108
|
-
if (
|
|
109
|
-
let
|
|
110
|
-
|
|
111
|
-
} else
|
|
112
|
-
return
|
|
109
|
+
static exportRefs(e, t, n) {
|
|
110
|
+
return e.map((e) => {
|
|
111
|
+
let r = "", s = t.refs[e], c = s.endpointIds.findIndex((e) => g(t.endpoints[e].relation).max === 1), u = c === -1 ? 0 : c, d = s.endpointIds[1 - u], f = s.endpointIds[u], p = t.endpoints[d], m = t.endpoints[f], h = t.fields[m.fieldIds[0]], _ = t.tables[h.tableId], v = t.schemas[_.schemaId], y = this.buildFieldName(m.fieldIds, t, "postgres"), b = t.fields[p.fieldIds[0]], x = t.tables[b.tableId], S = t.schemas[x.schemaId], C = this.buildFieldName(p.fieldIds, t, "postgres");
|
|
112
|
+
if (c === -1) {
|
|
113
|
+
let e = i(m.fieldIds, t), s = a(p.fieldIds, t, e), c = o(_.name, x.name, n);
|
|
114
|
+
r += this.buildTableManyToMany(e, s, c, v, t), r += this.buildForeignKeyManyToMany(e, y, c, _.name, v, v, t), r += this.buildForeignKeyManyToMany(s, C, c, x.name, v, S, t);
|
|
115
|
+
} else r = `ALTER TABLE ${l(S, t) ? `"${S.name}".` : ""}"${x.name}" ADD `, s.name && (r += `CONSTRAINT "${s.name}" `), r += `FOREIGN KEY ${C} REFERENCES ${l(v, t) ? `"${v.name}".` : ""}"${_.name}" ${y}`, s.onDelete && (r += ` ON DELETE ${s.onDelete.toUpperCase()}`), s.onUpdate && (r += ` ON UPDATE ${s.onUpdate.toUpperCase()}`), r += " DEFERRABLE INITIALLY IMMEDIATE;\n";
|
|
116
|
+
return r;
|
|
113
117
|
});
|
|
114
118
|
}
|
|
115
119
|
static exportIndexes(e, t) {
|
|
116
120
|
return e.filter((e) => !t.indexes[e].pk).map((e) => {
|
|
117
|
-
let n = t.indexes[e], r = t.tables[n.tableId], i = t.schemas[r.schemaId],
|
|
118
|
-
n.unique && (
|
|
119
|
-
let
|
|
120
|
-
|
|
121
|
-
let
|
|
121
|
+
let n = t.indexes[e], r = t.tables[n.tableId], i = t.schemas[r.schemaId], a = "CREATE";
|
|
122
|
+
n.unique && (a += " UNIQUE");
|
|
123
|
+
let o = n.name ? `"${n.name}"` : "";
|
|
124
|
+
a += " INDEX", o && (a += ` ${o}`), a += ` ON ${l(i, t) ? `"${i.name}".` : ""}"${r.name}"`, n.type && (a += ` USING ${n.type.toUpperCase()}`);
|
|
125
|
+
let s = [];
|
|
122
126
|
return n.columnIds.forEach((e) => {
|
|
123
127
|
let n = t.indexColumns[e], r = "";
|
|
124
|
-
r = n.type === "expression" ? `(${n.value})` : `"${n.value}"`,
|
|
125
|
-
}),
|
|
128
|
+
r = n.type === "expression" ? `(${n.value})` : `"${n.value}"`, s.push(r);
|
|
129
|
+
}), a += ` (${s.join(", ")})`, a += ";\n", a;
|
|
126
130
|
});
|
|
127
131
|
}
|
|
128
132
|
static exportComments(e, t) {
|
|
@@ -130,11 +134,11 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
|
|
|
130
134
|
let n = "COMMENT ON", r = t.tables[e.tableId], i = t.schemas[r.schemaId];
|
|
131
135
|
switch (e.type) {
|
|
132
136
|
case "table":
|
|
133
|
-
n += ` TABLE ${
|
|
137
|
+
n += ` TABLE ${l(i, t) ? `"${i.name}".` : ""}"${r.name}" IS '${r.note.replace(/'/g, "''")}'`;
|
|
134
138
|
break;
|
|
135
139
|
case "column": {
|
|
136
|
-
let
|
|
137
|
-
n += ` COLUMN ${
|
|
140
|
+
let a = t.fields[e.fieldId];
|
|
141
|
+
n += ` COLUMN ${l(i, t) ? `"${i.name}".` : ""}"${r.name}"."${a.name}" IS '${a.note.replace(/'/g, "''")}'`;
|
|
138
142
|
break;
|
|
139
143
|
}
|
|
140
144
|
default: break;
|
|
@@ -142,13 +146,13 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
|
|
|
142
146
|
return n += ";\n", n;
|
|
143
147
|
});
|
|
144
148
|
}
|
|
145
|
-
static export(
|
|
146
|
-
let
|
|
147
|
-
let
|
|
148
|
-
return a
|
|
149
|
-
let [n,
|
|
150
|
-
|
|
151
|
-
}),
|
|
149
|
+
static export(i) {
|
|
150
|
+
let a = i.database[1], o = new Set(Object.values(i.tables).map((e) => e.name)), s = /* @__PURE__ */ new Set(), c = a.schemaIds.reduce((e, t) => {
|
|
151
|
+
let a = i.schemas[t], { enumIds: o } = a;
|
|
152
|
+
return l(a, i) && e.schemas.push(`CREATE SCHEMA "${a.name}";\n`), n(o) || r.exportEnums(o, i).forEach((t) => {
|
|
153
|
+
let [n, r] = t;
|
|
154
|
+
e.enums.push(r), s.add(n);
|
|
155
|
+
}), e;
|
|
152
156
|
}, {
|
|
153
157
|
schemas: [],
|
|
154
158
|
enums: [],
|
|
@@ -156,35 +160,35 @@ var g = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMAL.NUMERIC.REAL.DOUBLE
|
|
|
156
160
|
indexes: [],
|
|
157
161
|
comments: [],
|
|
158
162
|
refs: []
|
|
159
|
-
}),
|
|
160
|
-
let { tableIds:
|
|
161
|
-
|
|
162
|
-
let
|
|
163
|
-
|
|
164
|
-
let
|
|
165
|
-
let { fieldIds:
|
|
163
|
+
}), u = a.schemaIds.reduce((t, a) => {
|
|
164
|
+
let { tableIds: c, refIds: l } = i.schemas[a];
|
|
165
|
+
n(c) || t.tables.push(...r.exportTables(c, i, s));
|
|
166
|
+
let u = e(c.map((e) => i.tables[e].indexIds));
|
|
167
|
+
n(u) || t.indexes.push(...r.exportIndexes(u, i));
|
|
168
|
+
let d = e(c.map((e) => {
|
|
169
|
+
let { fieldIds: t, note: n } = i.tables[e], r = t.filter((e) => i.fields[e].note).map((t) => ({
|
|
166
170
|
type: "column",
|
|
167
|
-
fieldId:
|
|
168
|
-
tableId:
|
|
171
|
+
fieldId: t,
|
|
172
|
+
tableId: e
|
|
169
173
|
}));
|
|
170
|
-
return
|
|
174
|
+
return n ? [{
|
|
171
175
|
type: "table",
|
|
172
|
-
tableId:
|
|
173
|
-
}].concat(
|
|
176
|
+
tableId: e
|
|
177
|
+
}].concat(r) : r;
|
|
174
178
|
}));
|
|
175
|
-
return
|
|
176
|
-
},
|
|
179
|
+
return n(d) || t.comments.push(...r.exportComments(d, i)), n(l) || t.refs.push(...r.exportRefs(l, i, o)), t;
|
|
180
|
+
}, c), d = r.exportRecords(i), f = n(d) ? [] : [
|
|
177
181
|
"-- Defer constraint checking for INSERT",
|
|
178
182
|
"BEGIN;",
|
|
179
183
|
"SET CONSTRAINTS ALL DEFERRED;",
|
|
180
184
|
"",
|
|
181
|
-
...
|
|
185
|
+
...d,
|
|
182
186
|
"",
|
|
183
187
|
"SET CONSTRAINTS ALL IMMEDIATE;",
|
|
184
188
|
"COMMIT;"
|
|
185
189
|
];
|
|
186
|
-
return
|
|
190
|
+
return t(u.schemas, u.enums, u.tables, u.indexes, u.comments, u.refs, f).join("\n");
|
|
187
191
|
}
|
|
188
192
|
};
|
|
189
193
|
//#endregion
|
|
190
|
-
export {
|
|
194
|
+
export { y as default };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("
|
|
2
|
-
`)};\nGO`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`[${n.name}] nvarchar(255) CHECK ([${n.name}] IN (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)}))`}else r=`[${n.name}] ${n.type.type_name===`varchar`?`nvarchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` IDENTITY(1, 1)`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT [${e.name}]`),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT (${n.dbdefault.value})`)),r})}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){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(t
|
|
3
|
-
`)}\n)\nGO\n`})}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");let a=require("@dbml/parse");r.init_lodash();var o=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,o=t?`[${t}].[${n}]`:`[${n}]`,s=r.length>0?`([${r.join(`], [`)}])`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,a.isNumericType)(e.type)?e.value:(0,a.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`1`:`0`:(0,a.isStringType)(e.type)||(0,a.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`)}'`:(0,a.isBinaryType)(e.type)?`0x${e.value}`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${o} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
|
|
2
|
+
`)};\nGO`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`[${n.name}] nvarchar(255) CHECK ([${n.name}] IN (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)}))`}else r=`[${n.name}] ${n.type.type_name===`varchar`?`nvarchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` IDENTITY(1, 1)`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT [${e.name}]`),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT (${n.dbdefault.value})`)),r})}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){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(e,t){return r.getTableContentArr(e,t).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(`,
|
|
3
|
+
`)}\n)\nGO\n`})}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+=`);
|
|
4
4
|
GO
|
|
5
5
|
|
|
6
|
-
`,o}static buildForeignKeyManyToMany(t,n,r,
|
|
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};\nGO\n\n`}static buildFieldName(e,t){return`(${e.map(e=>`[${t.fields[e].name}]`).join(`, `)})`}static exportRefs(e,t,n){return e.map(e=>{let r=``,o=t.refs[e],s=o.endpointIds.findIndex(e=>(0,a.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=o.endpointIds[1-c],u=o.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,`mssql`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`mssql`);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 `,o.name&&(r+=`CONSTRAINT [${o.name}] `),r+=`FOREIGN KEY ${b} REFERENCES ${i.shouldPrintSchema(h,t)?`[${h.name}].`:``}[${m.name}] ${g}`,o.onDelete&&(r+=` ON DELETE ${o.onDelete.toUpperCase()}`),o.onUpdate&&(r+=` ON UPDATE ${o.onUpdate.toUpperCase()}`),r+=`
|
|
7
7
|
GO
|
|
8
|
-
`;return
|
|
8
|
+
`;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map((e,n)=>{let r=t.indexes[e],a=t.tables[r.tableId],o=t.schemas[a.schemaId],s=`CREATE`;r.unique&&(s+=` UNIQUE`);let c=r.name?`[${r.name}]`:`[${a.name}_index_${n}]`;s+=` INDEX ${c} ON ${i.shouldPrintSchema(o,t)?`[${o.name}].`:``}[${a.name}]`;let l=[];return r.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,l.push(r)}),s+=` (${l.join(`, `)})`,s+=`
|
|
9
9
|
GO
|
|
10
|
-
`,s})}static exportComments(t
|
|
11
|
-
`,
|
|
12
|
-
`,a+=`@value = '${
|
|
13
|
-
`,a+=`@value = '${o.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${
|
|
14
|
-
`,a})}static export(
|
|
15
|
-
`)}};exports.default=
|
|
10
|
+
`,s})}static exportComments(e,t){return e.map(e=>{let n=t.tables[e.tableId],r=t.schemas[n.schemaId],a=``;switch(a=`EXEC sp_addextendedproperty
|
|
11
|
+
`,e.type){case`table`:a+=`@name = N'Table_Description',
|
|
12
|
+
`,a+=`@value = '${n.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${i.shouldPrintSchema(r,t)?`${r.name}`:`dbo`}',\n`,a+=`@level1type = N'Table', @level1name = '${n.name}';\n`;break;case`column`:{let o=t.fields[e.fieldId];a+=`@name = N'Column_Description',
|
|
13
|
+
`,a+=`@value = '${o.note.replace(/'/g,`''`)}',\n`,a+=`@level0type = N'Schema', @level0name = '${i.shouldPrintSchema(r,t)?`${r.name}`:`dbo`}',\n`,a+=`@level1type = N'Table', @level1name = '${n.name}',\n`,a+=`@level2type = N'Column', @level2name = '${o.name}';\n`;break}default:break}return a+=`GO
|
|
14
|
+
`,a})}static export(a){let o=a.database[1],s=new Set(Object.values(a.tables).map(e=>e.name)),c=o.schemaIds.reduce((t,o)=>{let c=a.schemas[o],{tableIds:l,refIds:u}=c;i.shouldPrintSchema(c,a)&&t.schemas.push(`CREATE SCHEMA [${c.name}]\nGO\n`),n.default(l)||t.tables.push(...r.exportTables(l,a));let d=e.default(l.map(e=>a.tables[e].indexIds));n.default(d)||t.indexes.push(...r.exportIndexes(d,a));let f=e.default(l.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(f)||t.comments.push(...r.exportComments(f,a)),n.default(u)||t.refs.push(...r.exportRefs(u,a,s)),t},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),l=r.exportRecords(a),u=n.default(l)?[]:(()=>{let e=[...new Set(Object.values(a.records||{}).map(e=>e.schemaName?`[${e.schemaName}].[${e.tableName}]`:`[${e.tableName}]`))];return[`-- Disable constraint checks for tables with data`,...e.map(e=>`ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),``,...l,``,`-- Re-enable constraint checks`,...e.map(e=>`ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)]})();return t.default(c.schemas,c.enums,c.tables,c.indexes,c.comments,c.refs,u).join(`
|
|
15
|
+
`)}};exports.default=o;
|
|
@@ -1,13 +1,17 @@
|
|
|
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/isEmpty.mjs";
|
|
4
|
+
import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
|
|
5
|
+
import { buildJunctionFields1 as i, buildJunctionFields2 as a, buildNewTableName as o, shouldPrintSchema as s } from "./utils.mjs";
|
|
6
|
+
import { isBinaryType as c, isBooleanType as l, isDateTimeType as u, isNumericType as d, isStringType as f, parseCardinality as p } from "@dbml/parse";
|
|
4
7
|
//#region src/export/SqlServerExporter.js
|
|
5
|
-
|
|
8
|
+
r();
|
|
9
|
+
var m = class r {
|
|
6
10
|
static exportRecords(e) {
|
|
7
11
|
let t = Object.values(e.records || {}).filter((e) => !e.example);
|
|
8
|
-
return
|
|
9
|
-
let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `[${t}].[${n}]` : `[${n}]`, o = r.length > 0 ? `([${r.join("], [")}])` : "",
|
|
10
|
-
return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(
|
|
12
|
+
return n(t) ? [] : t.map((e) => {
|
|
13
|
+
let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `[${t}].[${n}]` : `[${n}]`, o = r.length > 0 ? `([${r.join("], [")}])` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" || d(e.type) ? e.value : l(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "1" : "0" : f(e.type) || u(e.type) ? `'${e.value.replace(/'/g, "''")}'` : c(e.type) ? `0x${e.value}` : `CAST('${e.value.replace(/'/g, "''")}' AS ${e.type})`;
|
|
14
|
+
return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(s).join(", ")})`).join(",\n ")};\nGO`;
|
|
11
15
|
});
|
|
12
16
|
}
|
|
13
17
|
static getFieldLines(e, t) {
|
|
@@ -49,94 +53,94 @@ var p = class p {
|
|
|
49
53
|
static getTableContentArr(e, t) {
|
|
50
54
|
return e.map((e) => ({
|
|
51
55
|
tableId: e,
|
|
52
|
-
fieldContents:
|
|
53
|
-
checkContents:
|
|
54
|
-
compositePKs:
|
|
56
|
+
fieldContents: r.getFieldLines(e, t),
|
|
57
|
+
checkContents: r.getCheckLines(e, t),
|
|
58
|
+
compositePKs: r.getCompositePKs(e, t)
|
|
55
59
|
}));
|
|
56
60
|
}
|
|
57
61
|
static exportTables(e, t) {
|
|
58
|
-
return
|
|
62
|
+
return r.getTableContentArr(e, t).map((e) => {
|
|
59
63
|
let n = [
|
|
60
64
|
...e.fieldContents,
|
|
61
65
|
...e.checkContents,
|
|
62
66
|
...e.compositePKs
|
|
63
|
-
],
|
|
64
|
-
return `CREATE TABLE ${
|
|
67
|
+
], r = t.tables[e.tableId], i = t.schemas[r.schemaId];
|
|
68
|
+
return `CREATE TABLE ${s(i, t) ? `[${i.name}].` : ""}[${r.name}] (\n${n.map((e) => ` ${e}`).join(",\n")}\n)\nGO\n`;
|
|
65
69
|
});
|
|
66
70
|
}
|
|
67
|
-
static buildTableManyToMany(e, t, n,
|
|
68
|
-
let
|
|
71
|
+
static buildTableManyToMany(e, t, n, r, i) {
|
|
72
|
+
let a = `CREATE TABLE ${s(r, i) ? `[${r.name}].` : ""}[${n}] (\n`, o = [...e.keys()].join("], ["), c = [...t.keys()].join("], [");
|
|
69
73
|
return e.forEach((e, t) => {
|
|
70
|
-
|
|
74
|
+
a += ` [${t}] ${e},\n`;
|
|
71
75
|
}), t.forEach((e, t) => {
|
|
72
|
-
|
|
73
|
-
}),
|
|
76
|
+
a += ` [${t}] ${e},\n`;
|
|
77
|
+
}), a += ` PRIMARY KEY ([${o}], [${c}])\n`, a += ");\nGO\n\n", a;
|
|
74
78
|
}
|
|
75
|
-
static buildForeignKeyManyToMany(e, t, n, i, a, o
|
|
79
|
+
static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
|
|
76
80
|
let c = [...e.keys()].join("], [");
|
|
77
|
-
return `ALTER TABLE ${
|
|
81
|
+
return `ALTER TABLE ${s(i, o) ? `[${i.name}].` : ""}[${n}] ADD FOREIGN KEY ([${c}]) REFERENCES ${s(a, o) ? `[${a.name}].` : ""}[${r}] ${t};\nGO\n\n`;
|
|
78
82
|
}
|
|
79
83
|
static buildFieldName(e, t) {
|
|
80
84
|
return `(${e.map((e) => `[${t.fields[e].name}]`).join(", ")})`;
|
|
81
85
|
}
|
|
82
|
-
static exportRefs(
|
|
83
|
-
return
|
|
84
|
-
let
|
|
86
|
+
static exportRefs(e, t, n) {
|
|
87
|
+
return e.map((e) => {
|
|
88
|
+
let r = "", c = t.refs[e], l = c.endpointIds.findIndex((e) => p(t.endpoints[e].relation).max === 1), u = l === -1 ? 0 : l, d = c.endpointIds[1 - u], f = c.endpointIds[u], m = t.endpoints[d], h = t.endpoints[f], g = t.fields[h.fieldIds[0]], _ = t.tables[g.tableId], v = t.schemas[_.schemaId], y = this.buildFieldName(h.fieldIds, t, "mssql"), b = t.fields[m.fieldIds[0]], x = t.tables[b.tableId], S = t.schemas[x.schemaId], C = this.buildFieldName(m.fieldIds, t, "mssql");
|
|
85
89
|
if (l === -1) {
|
|
86
|
-
let
|
|
87
|
-
|
|
88
|
-
} else
|
|
89
|
-
return
|
|
90
|
+
let e = i(h.fieldIds, t), s = a(m.fieldIds, t, e), c = o(_.name, x.name, n);
|
|
91
|
+
r += this.buildTableManyToMany(e, s, c, v, t), r += this.buildForeignKeyManyToMany(e, y, c, _.name, v, v, t), r += this.buildForeignKeyManyToMany(s, C, c, x.name, v, S, t);
|
|
92
|
+
} else r = `ALTER TABLE ${s(S, t) ? `[${S.name}].` : ""}[${x.name}] ADD `, c.name && (r += `CONSTRAINT [${c.name}] `), r += `FOREIGN KEY ${C} REFERENCES ${s(v, t) ? `[${v.name}].` : ""}[${_.name}] ${y}`, c.onDelete && (r += ` ON DELETE ${c.onDelete.toUpperCase()}`), c.onUpdate && (r += ` ON UPDATE ${c.onUpdate.toUpperCase()}`), r += "\nGO\n";
|
|
93
|
+
return r;
|
|
90
94
|
});
|
|
91
95
|
}
|
|
92
96
|
static exportIndexes(e, t) {
|
|
93
97
|
return e.filter((e) => !t.indexes[e].pk).map((e, n) => {
|
|
94
|
-
let
|
|
95
|
-
|
|
96
|
-
let c =
|
|
97
|
-
|
|
98
|
+
let r = t.indexes[e], i = t.tables[r.tableId], a = t.schemas[i.schemaId], o = "CREATE";
|
|
99
|
+
r.unique && (o += " UNIQUE");
|
|
100
|
+
let c = r.name ? `[${r.name}]` : `[${i.name}_index_${n}]`;
|
|
101
|
+
o += ` INDEX ${c} ON ${s(a, t) ? `[${a.name}].` : ""}[${i.name}]`;
|
|
98
102
|
let l = [];
|
|
99
|
-
return
|
|
103
|
+
return r.columnIds.forEach((e) => {
|
|
100
104
|
let n = t.indexColumns[e], r = "";
|
|
101
105
|
r = n.type === "expression" ? `(${n.value})` : `"${n.value}"`, l.push(r);
|
|
102
|
-
}),
|
|
106
|
+
}), o += ` (${l.join(", ")})`, o += "\nGO\n", o;
|
|
103
107
|
});
|
|
104
108
|
}
|
|
105
109
|
static exportComments(e, t) {
|
|
106
110
|
return e.map((e) => {
|
|
107
|
-
let n = t.tables[e.tableId],
|
|
108
|
-
switch (
|
|
111
|
+
let n = t.tables[e.tableId], r = t.schemas[n.schemaId], i = "";
|
|
112
|
+
switch (i = "EXEC sp_addextendedproperty\n", e.type) {
|
|
109
113
|
case "table":
|
|
110
|
-
|
|
114
|
+
i += "@name = N'Table_Description',\n", i += `@value = '${n.note.replace(/'/g, "''")}',\n`, i += `@level0type = N'Schema', @level0name = '${s(r, t) ? `${r.name}` : "dbo"}',\n`, i += `@level1type = N'Table', @level1name = '${n.name}';\n`;
|
|
111
115
|
break;
|
|
112
116
|
case "column": {
|
|
113
|
-
let
|
|
114
|
-
|
|
117
|
+
let a = t.fields[e.fieldId];
|
|
118
|
+
i += "@name = N'Column_Description',\n", i += `@value = '${a.note.replace(/'/g, "''")}',\n`, i += `@level0type = N'Schema', @level0name = '${s(r, t) ? `${r.name}` : "dbo"}',\n`, i += `@level1type = N'Table', @level1name = '${n.name}',\n`, i += `@level2type = N'Column', @level2name = '${a.name}';\n`;
|
|
115
119
|
break;
|
|
116
120
|
}
|
|
117
121
|
default: break;
|
|
118
122
|
}
|
|
119
|
-
return
|
|
123
|
+
return i += "GO\n", i;
|
|
120
124
|
});
|
|
121
125
|
}
|
|
122
|
-
static export(
|
|
123
|
-
let
|
|
124
|
-
let
|
|
125
|
-
|
|
126
|
-
let
|
|
127
|
-
|
|
128
|
-
let
|
|
129
|
-
let { fieldIds:
|
|
126
|
+
static export(i) {
|
|
127
|
+
let a = i.database[1], o = new Set(Object.values(i.tables).map((e) => e.name)), c = a.schemaIds.reduce((t, a) => {
|
|
128
|
+
let c = i.schemas[a], { tableIds: l, refIds: u } = c;
|
|
129
|
+
s(c, i) && t.schemas.push(`CREATE SCHEMA [${c.name}]\nGO\n`), n(l) || t.tables.push(...r.exportTables(l, i));
|
|
130
|
+
let d = e(l.map((e) => i.tables[e].indexIds));
|
|
131
|
+
n(d) || t.indexes.push(...r.exportIndexes(d, i));
|
|
132
|
+
let f = e(l.map((e) => {
|
|
133
|
+
let { fieldIds: t, note: n } = i.tables[e], r = t.filter((e) => i.fields[e].note).map((t) => ({
|
|
130
134
|
type: "column",
|
|
131
|
-
fieldId:
|
|
132
|
-
tableId:
|
|
135
|
+
fieldId: t,
|
|
136
|
+
tableId: e
|
|
133
137
|
}));
|
|
134
|
-
return
|
|
138
|
+
return n ? [{
|
|
135
139
|
type: "table",
|
|
136
|
-
tableId:
|
|
137
|
-
}].concat(
|
|
140
|
+
tableId: e
|
|
141
|
+
}].concat(r) : r;
|
|
138
142
|
}));
|
|
139
|
-
return
|
|
143
|
+
return n(f) || t.comments.push(...r.exportComments(f, i)), n(u) || t.refs.push(...r.exportRefs(u, i, o)), t;
|
|
140
144
|
}, {
|
|
141
145
|
schemas: [],
|
|
142
146
|
enums: [],
|
|
@@ -144,20 +148,20 @@ var p = class p {
|
|
|
144
148
|
indexes: [],
|
|
145
149
|
comments: [],
|
|
146
150
|
refs: []
|
|
147
|
-
}),
|
|
148
|
-
let
|
|
151
|
+
}), l = r.exportRecords(i), u = n(l) ? [] : (() => {
|
|
152
|
+
let e = [...new Set(Object.values(i.records || {}).map((e) => e.schemaName ? `[${e.schemaName}].[${e.tableName}]` : `[${e.tableName}]`))];
|
|
149
153
|
return [
|
|
150
154
|
"-- Disable constraint checks for tables with data",
|
|
151
|
-
...
|
|
155
|
+
...e.map((e) => `ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),
|
|
152
156
|
"",
|
|
153
|
-
...
|
|
157
|
+
...l,
|
|
154
158
|
"",
|
|
155
159
|
"-- Re-enable constraint checks",
|
|
156
|
-
...
|
|
160
|
+
...e.map((e) => `ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)
|
|
157
161
|
];
|
|
158
162
|
})();
|
|
159
|
-
return
|
|
163
|
+
return t(c.schemas, c.enums, c.tables, c.indexes, c.comments, c.refs, u).join("\n");
|
|
160
164
|
}
|
|
161
165
|
};
|
|
162
166
|
//#endregion
|
|
163
|
-
export {
|
|
167
|
+
export { m as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/get.cjs"),t=require("../node_modules/lodash-es/capitalize.cjs"),n=require("../node_modules/lodash-es/lodash.cjs"),r=require("./config.cjs"),i=require("./dbState.cjs"),a=require("./element.cjs"),o=require("./dep.cjs"),s=require("./enum.cjs"),c=require("./ref.cjs"),l=require("./table.cjs"),u=require("./tableGroup.cjs"),d=require("./schema.cjs"),f=require("./stickyNote.cjs"),p=require("./tablePartial.cjs");let m=require("@dbml/parse");n.init_lodash();var h=class extends a.default{constructor({schemas:t=[],tables:n=[],notes:a=[],enums:o=[],refs:s=[],deps:l=[],tableGroups:u=[],project:d={},aliases:f=[],records:p=[],tablePartials:m=[],diagramViews:h=[]}={}){super(),this.dbState=new i.default,this.generateId(),this.hasDefaultSchema=!1,this.schemas=[],this.notes=[],this.note=d.note?e.default(d,`note.value`,typeof d.note==`string`?d.note:null):null,this.noteToken=d.note?e.default(d,`note.token`,d.noteToken):null,this.databaseType=d.database_type,this.name=d.name,this.token=d.token,this.aliases=f,this.records=[],this.tablePartials=[],this.diagramViews=h,this.injectedRawRefs=[],this.processNotes(a),this.processRecords(p),this.processTablePartials(m),this.processSchemas(t),this.processSchemaElements(o,r.ENUM),this.processSchemaElements(n,r.TABLE),this.linkRecordsToTables(),this.processSchemaElements(a,r.NOTE),this.processSchemaElements(s,`ref`),this.processSchemaElements(l,`dep`),this.processSchemaElements(u,r.TABLE_GROUP),this.injectedRawRefs.forEach(e=>{let t=this.findOrCreateSchema(r.DEFAULT_SCHEMA_NAME),n=new c.default({...e,schema:t});t.refs.some(e=>e.equals(n))||t.pushRef(n)})}generateId(){this.id=this.dbState.generateId(`dbId`)}processNotes(e){e.forEach(e=>{this.pushNote(new f.default({...e,database:this}))})}processRecords(e){e.forEach(({schemaName:e,tableName:t,columns:n,values:r,example:i,token:a})=>{this.records.push({id:this.dbState.generateId(`recordId`),schemaName:e,tableName:t,columns:n,values:r,example:i,token:a})})}processTablePartials(e){e.forEach(e=>{this.tablePartials.push(new p.default({...e,dbState:this.dbState}))})}pushNote(e){this.checkNote(e),this.notes.push(e)}checkNote(e){this.notes.some(t=>t.name===e.name)&&e.error(`Notes ${e.name} existed`)}processSchemas(e){e.forEach(e=>{this.pushSchema(new d.default({...e,database:this}))})}pushSchema(e){this.checkSchema(e),this.schemas.push(e)}checkSchema(e){this.schemas.some(t=>t.name===e.name)&&e.error(`Schemas ${e.name} existed`)}processSchemaElements(e,t){let n;e.forEach(e=>{switch(e.schemaName?(n=this.findOrCreateSchema(e.schemaName),e.schemaName):n=this.findOrCreateSchema(r.DEFAULT_SCHEMA_NAME),t){case r.TABLE:n.pushTable(new l.default({...e,schema:n}));break;case r.ENUM:n.pushEnum(new s.default({...e,schema:n}));break;case r.TABLE_GROUP:n.pushTableGroup(new u.default({...e,schema:n}));break;case`ref`:n.pushRef(new c.default({...e,schema:n}));break;case`dep`:n.pushDep(new o.default({...e,schema:n}));break;default:break}})}linkRecordsToTables(){let e={};this.schemas.forEach(t=>{e[t.name]={},t.tables.forEach(n=>{e[t.name][n.name]=n})}),this.records.forEach(t=>{let n=e[t.schemaName??`public`]?.[t.tableName];n&&(t.tableId=n.id,n.records.push(t))})}findOrCreateSchema(e){let n=this.schemas.find(t=>t.name===e||t.alias===e);return n||(n=new d.default({name:e,note:{value:e===`public`?`Default ${t.default(r.DEFAULT_SCHEMA_NAME)} Schema`:null},database:this}),this.pushSchema(n)),n}findTableAlias(e){let t=this.aliases.find(t=>t.name===e);if(!t||t.kind!==`table`)return null;let n=t.value.schemaName||`public`,r=this.schemas.find(e=>e.name===n);if(!r)return null;let{tableName:i}=t.value;return r.tables.find(e=>e.name===i)||null}findTable(e,t){let n=null;if(!e&&(n=this.findTableAlias(t),n))return n;let r=this.findOrCreateSchema(e||`public`);return r||this.error(`Schema ${e||`public`} don't exist`),r.findTable(t)}findEnum(e,t){let n=this.schemas.find(t=>t.name===e||t.alias===e);if(n)return n.enums.find(e=>e.name===t)}findTablePartial(e){return this.tablePartials.find(t=>t.name===e)}adjustCardinalitiesFromColumns(){this.schemas.forEach(e=>{e.refs.forEach(e=>{let t=e.endpoints.find(e=>(0,m.parseCardinality)(e.relation).max===`*`),n=e.endpoints.find(e=>(0,m.parseCardinality)(e.relation).max===1);if(!n)return;let r,i;t?(r=t,i=n):(r=e.endpoints[1],i=e.endpoints[0]),!(!r||!i)&&r.fields.every(e=>e.not_null||e.pk||e.increment)&&(i.relation=(0,m.makeCardinalityRequired)(i.relation))})})}export(){return{...this.exportChild()}}shallowExport(){return{hasDefaultSchema:this.hasDefaultSchema,note:this.note,databaseType:this.databaseType,name:this.name}}exportChild(){return{schemas:this.schemas.map(e=>e.export()),notes:this.notes.map(e=>e.export()),records:this.records.map(e=>({...e}))}}exportChildIds(){return{schemaIds:this.schemas.map(e=>e.id),noteIds:this.notes.map(e=>e.id)}}normalize(){let e={database:{[this.id]:{id:this.id,...this.shallowExport(),...this.exportChildIds()}},schemas:{},notes:{},refs:{},deps:{},depEdges:{},enums:{},tableGroups:{},tables:{},endpoints:{},enumValues:{},indexes:{},indexColumns:{},checks:{},fields:{},records:{},tablePartials:{}};return this.schemas.forEach(t=>t.normalize(e)),this.notes.forEach(t=>t.normalize(e)),this.records.forEach(t=>{e.records[t.id]={...t}}),this.tablePartials.forEach(t=>t.normalize(e)),e}};exports.default=h;
|