mirror of
https://github.com/vran-dev/databasir.git
synced 2025-08-08 17:32:14 +08:00
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:
@@ -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();
|
||||
|
@@ -35,6 +35,11 @@ public class DatabaseMeta {
|
||||
*/
|
||||
private String databaseName;
|
||||
|
||||
/**
|
||||
* schema_name
|
||||
*/
|
||||
private String schemaName;
|
||||
|
||||
@Builder.Default
|
||||
private List<TableMeta> tables = Collections.emptyList();
|
||||
|
||||
|
@@ -16,6 +16,8 @@ public class Condition {
|
||||
@NonNull
|
||||
private String databaseName;
|
||||
|
||||
private String schemaName;
|
||||
|
||||
@Builder.Default
|
||||
private Collection<String> ignoreTableNameRegex = Collections.emptyList();
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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)) {
|
||||
|
Reference in New Issue
Block a user