@@ -1716,7 +1716,7 @@ DataSource.prototype.discoverSchemas = function(tableName, options, cb) {
1716
1716
1717
1717
columns . forEach ( function ( item ) {
1718
1718
const propName = nameMapper ( 'column' , item . columnName ) ;
1719
- schema . properties [ propName ] = {
1719
+ const propertyDetails = {
1720
1720
type : item . type ,
1721
1721
required : ! item . generated && ( item . nullable === 'N' || item . nullable === 'NO' ||
1722
1722
item . nullable === 0 || item . nullable === false ) ,
@@ -1727,12 +1727,25 @@ DataSource.prototype.discoverSchemas = function(tableName, options, cb) {
1727
1727
scale : item . dataScale ,
1728
1728
generated : item . generated || false ,
1729
1729
} ;
1730
+ if (
1731
+ item . indexType === 'BTREE' &&
1732
+ item . indexName !== 'PRIMARY' &&
1733
+ ! item . isForeignKey
1734
+ ) {
1735
+ propertyDetails . index = { unique : true } ;
1736
+ }
1737
+
1730
1738
if ( pks [ item . columnName ] ) {
1731
- schema . properties [ propName ] . id = pks [ item . columnName ] ;
1739
+ propertyDetails . id = pks [ item . columnName ] ;
1732
1740
}
1733
- if ( uniqueKeys . includes ( propName ) ) {
1734
- schema . properties [ propName ] [ 'index' ] = { unique : true } ;
1741
+ if (
1742
+ uniqueKeys . includes ( propName ) &&
1743
+ propertyDetails [ 'index' ] === undefined
1744
+ ) {
1745
+ propertyDetails [ 'index' ] = { unique : true } ;
1735
1746
}
1747
+
1748
+ schema . properties [ propName ] = propertyDetails ;
1736
1749
const dbSpecific = schema . properties [ propName ] [ dbType ] = {
1737
1750
columnName : item . columnName ,
1738
1751
dataType : item . dataType ,
0 commit comments