diff --git a/forward_engineering/ddlProvider/ddlProvider.js b/forward_engineering/ddlProvider/ddlProvider.js index d4ae6e2..577bdb4 100644 --- a/forward_engineering/ddlProvider/ddlProvider.js +++ b/forward_engineering/ddlProvider/ddlProvider.js @@ -494,7 +494,7 @@ module.exports = (baseProvider, options, app) => { }, hydrateIndex(indexData, tableData, schemaData) { - return { ...indexData, schemaName: schemaData.schemaName }; + return { ...indexData, schemaName: schemaData.schemaName, indexAnnotations: indexData.indexAnnotations }; }, createIndex(tableName, index, dbData, isParentActivated = true) { @@ -510,6 +510,9 @@ module.exports = (baseProvider, options, app) => { const dbVersion = options.dbVersion || ''; const usingTryCatchWrapper = shouldUseTryCatchIfNotExistsWrapper(dbVersion); + const annotations = getAnnotationsString(prepareName)(index.indexAnnotations); + const finalAnnotationsClause = annotations ? ' ' + annotations : ''; + const shouldInsertIfNotExistsStatement = index.ifNotExist && !usingTryCatchWrapper; let statement = assignTemplates(templates.createIndex, { @@ -519,6 +522,7 @@ module.exports = (baseProvider, options, app) => { keys, options: indexOptions, tableName: getNamePrefixedWithSchemaName(tableName, index.schemaName), + annotations: finalAnnotationsClause, }); if (index.ifNotExist && usingTryCatchWrapper) { diff --git a/forward_engineering/ddlProvider/templates.js b/forward_engineering/ddlProvider/templates.js index c31cc41..f735161 100644 --- a/forward_engineering/ddlProvider/templates.js +++ b/forward_engineering/ddlProvider/templates.js @@ -20,7 +20,7 @@ module.exports = { createForeignKey: 'ALTER TABLE ${foreignTable} ADD CONSTRAINT ${name} FOREIGN KEY (${foreignKey}) REFERENCES ${primaryTable} (${primaryKey})${onDelete};', - createIndex: `CREATE$\{indexType} INDEX$\{ifNotExists}$\{name} ON $\{tableName}$\{keys}$\{options};\n`, + createIndex: 'CREATE${indexType} INDEX${ifNotExists}${name} ON ${tableName}${keys}${options}${annotations};\n', dropIndex: 'DROP INDEX ${name};',