diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 544a9c1b3..6730e2123 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -174,15 +174,13 @@ module.exports = { async updateDatabase({ conid, database, values }) { if (portalConnections) return; const conn = await this.datastore.find({ _id: conid }); - let databaseConfig = conn.databaseConfig || {}; - databaseConfig = { - ...databaseConfig, - [database]: { - ...databaseConfig[database], - ...values, - }, - }; - const res = await this.datastore.update({ _id: conid }, { $set: { databaseConfig } }); + let databases = conn.databases || []; + if (databases.find(x => x.name == database)) { + databases = databases.map(x => (x.item == database ? { ...x, ...values } : x)); + } else { + databases = [...databases, { name: database, ...values }]; + } + const res = await this.datastore.update({ _id: conid }, { $set: { databases } }); socket.emitChanged('connection-list-changed'); return res; }, diff --git a/packages/web/src/utility/useConnectionColor.ts b/packages/web/src/utility/useConnectionColor.ts index c1beaf47c..39b02d70f 100644 --- a/packages/web/src/utility/useConnectionColor.ts +++ b/packages/web/src/utility/useConnectionColor.ts @@ -15,13 +15,9 @@ export function getConnectionColor( const current = connections.find(x => x._id == dbid.conid); const { database } = dbid; let colorName = useConnectionFallback || !database ? current?.connectionColor : null; - if ( - database && - current.databaseConfig && - current.databaseConfig[database] && - current.databaseConfig[database].databaseColor - ) { - colorName = current.databaseConfig[database].databaseColor; + const dbConfig = (current?.databases || []).find(x => x.name == database); + if (dbConfig?.databaseColor) { + colorName = dbConfig.databaseColor; } if (!colorName) return undefined; const palettes = themeType == 'dark' ? presetDarkPalettes : presetPalettes;