Skip to content

Commit 53471a5

Browse files
HCK-14309: Delta script for added view (#180)
1 parent cab8764 commit 53471a5

2 files changed

Lines changed: 46 additions & 2 deletions

File tree

forward_engineering/alterScript/alterScriptFromDeltaHelper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ const getAlterViewScriptDtos = (collection, app) => {
221221
.filter(Boolean)
222222
.map(item => Object.values(item.properties)[0])
223223
.map(view => ({ ...view, ...(view.role || {}) }))
224-
.filter(view => view.compMod?.created && view.selectStatement)
224+
.filter(view => view.compMod?.created)
225225
.map(getAddViewScriptDto(app));
226226

227227
const deleteViewsScriptDtos = []

forward_engineering/alterScript/alterScriptHelpers/alterViewHelper.js

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,45 @@ const { getModifyViewCommentsScriptDtos } = require('./viewHelpers/commentsHelpe
33
const { AlterScriptDto } = require('../types/AlterScriptDto');
44
const { wrapInQuotes } = require('../../utils/general');
55

6+
const getKeys = ({ view, collectionRefsDefinitionsMap, ddlProvider, app }) => {
7+
const { mapProperties } = app.require('@hackolade/ddl-fe-utils');
8+
9+
return mapProperties(view, (propertyName, schema) => {
10+
const definition = collectionRefsDefinitionsMap[schema.refId];
11+
12+
if (!definition) {
13+
return ddlProvider.hydrateViewColumn({
14+
name: propertyName,
15+
isActivated: schema.isActivated,
16+
});
17+
}
18+
19+
const entityName =
20+
_.get(definition.collection, '[0].code', '') ||
21+
_.get(definition.collection, '[0].collectionName', '') ||
22+
'';
23+
const dbName = _.get(definition.bucket, '[0].code') || _.get(definition.bucket, '[0].name', '');
24+
const name = definition.name;
25+
26+
if (name === propertyName) {
27+
return ddlProvider.hydrateViewColumn({
28+
name,
29+
dbName,
30+
entityName,
31+
isActivated: schema.isActivated,
32+
});
33+
}
34+
35+
return ddlProvider.hydrateViewColumn({
36+
name,
37+
dbName,
38+
entityName,
39+
alias: propertyName,
40+
isActivated: schema.isActivated,
41+
});
42+
});
43+
};
44+
645
/**
746
* @return {(view: Object) => AlterScriptDto | undefined}
847
* */
@@ -11,7 +50,12 @@ const getAddViewScriptDto = app => view => {
1150

1251
const viewData = {
1352
name: view.code || view.name,
14-
keys: [],
53+
keys: getKeys({
54+
view,
55+
collectionRefsDefinitionsMap: view.compMod?.collectionData?.collectionRefsDefinitionsMap ?? {},
56+
ddlProvider,
57+
app,
58+
}),
1559
schemaData: { schemaName: '' },
1660
};
1761
const hydratedView = ddlProvider.hydrateView({ viewData, entityData: [view] });

0 commit comments

Comments
 (0)