feature: support database, schema config (#44)

* feat: add schema_name

* feat: support database, schema config

* feat: add more detail info in databaseTypes

* feat: add permission control to databaseType api

* feat: update frontend resources
This commit is contained in:
vran
2022-03-12 20:16:06 +08:00
committed by GitHub
parent 3ceb51748e
commit f026d406a2
65 changed files with 351 additions and 171 deletions

View File

@@ -20,9 +20,10 @@ public class Databasir {
private final DatabasirConfig config;
public Optional<DatabaseMeta> get(Connection connection, String databaseName) {
public Optional<DatabaseMeta> get(Connection connection, String databaseName, String schemaName) {
Condition condition = Condition.builder()
.databaseName(databaseName)
.schemaName(schemaName)
.ignoreTableNameRegex(config.getIgnoreTableNameRegex())
.ignoreTableColumnNameRegex(config.getIgnoreTableColumnNameRegex())
.build();

View File

@@ -35,6 +35,11 @@ public class DatabaseMeta {
*/
private String databaseName;
/**
* schema_name
*/
private String schemaName;
@Builder.Default
private List<TableMeta> tables = Collections.emptyList();

View File

@@ -16,6 +16,8 @@ public class Condition {
@NonNull
private String databaseName;
private String schemaName;
@Builder.Default
private Collection<String> ignoreTableNameRegex = Collections.emptyList();

View File

@@ -33,6 +33,7 @@ public class JdbcDatabaseMetaRepository implements DatabaseMetaRepository {
.productName(metaData.getDatabaseProductName())
.productVersion(metaData.getDatabaseProductVersion())
.databaseName(catalogName)
.schemaName(condition.getSchemaName())
.tables(tableDocs)
.build();
return Optional.of(meta);

View File

@@ -40,7 +40,7 @@ public class JdbcTableMetaRepository implements TableMetaRepository {
List<TableMeta> tableMetas = new ArrayList<>();
String databaseName = condition.getDatabaseName();
ResultSet tablesResult = connection.getMetaData()
.getTables(databaseName, null, null, new String[]{"TABLE"});
.getTables(databaseName, condition.getSchemaName(), null, new String[]{"TABLE"});
while (tablesResult.next()) {
String tableName = tablesResult.getString("TABLE_NAME");
if (condition.tableIsIgnored(tableName)) {