diff --git a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java index 568e618343..48ee70879d 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java @@ -335,6 +335,12 @@ public class JdbcProvider extends DatasourceProvider { driver = mongodbConfiguration.getDriver(); jdbcurl = mongodbConfiguration.getJdbc(); break; + case redshift: + RedshiftConfigration redshiftConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), RedshiftConfigration.class); + username = redshiftConfigration.getUsername(); + password = redshiftConfigration.getPassword(); + driver = redshiftConfigration.getDriver(); + jdbcurl = redshiftConfigration.getJdbc(); default: break; } @@ -411,6 +417,12 @@ public class JdbcProvider extends DatasourceProvider { dataSource.setUrl(mongodbConfiguration.getJdbc()); jdbcConfiguration = mongodbConfiguration; break; + case redshift: + RedshiftConfigration redshiftConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), RedshiftConfigration.class); + dataSource.setPassword(redshiftConfigration.getPassword()); + dataSource.setDriverClassName(redshiftConfigration.getDriver()); + dataSource.setUrl(redshiftConfigration.getJdbc()); + jdbcConfiguration = redshiftConfigration; default: break; } @@ -513,6 +525,8 @@ public class JdbcProvider extends DatasourceProvider { return "select name from sys.schemas;"; case pg: return "SELECT nspname FROM pg_namespace;"; + case redshift: + return "SELECT nspname FROM pg_namespace;"; default: return "show tables;"; } diff --git a/backend/src/main/java/io/dataease/datasource/provider/ProviderFactory.java b/backend/src/main/java/io/dataease/datasource/provider/ProviderFactory.java index 9081c0d09a..6df1c449e8 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/ProviderFactory.java +++ b/backend/src/main/java/io/dataease/datasource/provider/ProviderFactory.java @@ -50,6 +50,8 @@ public class ProviderFactory implements ApplicationContextAware { return context.getBean("ckQuery", QueryProvider.class); case mongo: return context.getBean("mongoQuery", QueryProvider.class); + case redshift: + return context.getBean("redshiftQuery", QueryProvider.class); default: return context.getBean("mysqlQuery", QueryProvider.class); } diff --git a/frontend/src/views/system/datasource/DsTree.vue b/frontend/src/views/system/datasource/DsTree.vue index 02172b12f6..f05d5f6462 100644 --- a/frontend/src/views/system/datasource/DsTree.vue +++ b/frontend/src/views/system/datasource/DsTree.vue @@ -165,6 +165,8 @@ export default { return 'Doris' } else if (type === 'mongo') { return 'MongoDB' + }else if (type === 'redshift') { + return 'AWS Redshift' } }, diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index 6cb4fe4a00..77a398d58c 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -59,14 +59,14 @@ - + {{ $t('datasource.get_schema') }} - - + +