feat(issue-#155): rename plugin module to meta (#156)
* feat(issue-#155): rename module plugin to meta * feat: remove unused md file * refactor: rename plugin module to meta * fix: trigger document error * fix: code checkstyle
This commit is contained in:
parent
f2c4de5bb1
commit
bab82d43df
|
@ -1,5 +1,5 @@
|
|||
rootProject.name = 'api'
|
||||
include 'plugin'
|
||||
include 'meta'
|
||||
include 'common'
|
||||
include 'dao'
|
||||
include 'core'
|
|
@ -20,7 +20,7 @@ bootBuildImage {
|
|||
|
||||
dependencies {
|
||||
implementation project(":common")
|
||||
implementation project(":plugin")
|
||||
implementation project(":meta")
|
||||
implementation project(":core")
|
||||
implementation project(":dao")
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>databasir</title><script defer="defer" type="module" src="/js/chunk-vendors.9effab81.js"></script><script defer="defer" type="module" src="/js/app.4e60282a.js"></script><link href="/css/chunk-vendors.81898547.css" rel="stylesheet"><link href="/css/app.15b40a89.css" rel="stylesheet"><script defer="defer" src="/js/chunk-vendors-legacy.fb0c8458.js" nomodule></script><script defer="defer" src="/js/app-legacy.6ebc1336.js" nomodule></script></head><body><noscript><strong>We're sorry but databasir doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>databasir</title><script defer="defer" type="module" src="/js/chunk-vendors.9effab81.js"></script><script defer="defer" type="module" src="/js/app.032828f8.js"></script><link href="/css/chunk-vendors.81898547.css" rel="stylesheet"><link href="/css/app.15b40a89.css" rel="stylesheet"><script defer="defer" src="/js/chunk-vendors-legacy.fb0c8458.js" nomodule></script><script defer="defer" src="/js/app-legacy.cc3cc5e0.js" nomodule></script></head><body><noscript><strong>We're sorry but databasir doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -55,7 +55,6 @@ subprojects {
|
|||
implementation "com.alibaba:easyexcel:${easyExcelVersion}"
|
||||
implementation "org.freemarker:freemarker:${freemarkerVersion}"
|
||||
implementation "commons-io:commons-io:${commonsIoVersion}"
|
||||
|
||||
}
|
||||
|
||||
test {
|
||||
|
|
|
@ -7,7 +7,7 @@ dependencies {
|
|||
// internal module
|
||||
implementation project(":common")
|
||||
implementation project(":dao")
|
||||
implementation project(":plugin")
|
||||
implementation project(":meta")
|
||||
|
||||
// spring boot
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
|
||||
|
|
|
@ -7,6 +7,8 @@ import org.mapstruct.Mapper;
|
|||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -62,6 +64,10 @@ public interface DocumentPojoConverter {
|
|||
Integer tableDocumentId,
|
||||
TriggerMeta meta);
|
||||
|
||||
default LocalDateTime toLocalDateTime(String dateTime) {
|
||||
return LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
|
||||
default List<TableForeignKeyDocumentPojo> toForeignKeyPojo(Integer docId,
|
||||
Integer tableMetaId,
|
||||
List<ForeignKeyMeta> foreignKeys) {
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 4901a5746647317cf82820b6817c9b6d4554ed35
|
||||
Subproject commit 215f052d23d0afac35de443675a8828aca94476f
|
|
@ -0,0 +1,50 @@
|
|||
package com.databasir.core;
|
||||
|
||||
import com.databasir.core.meta.data.DatabaseMeta;
|
||||
import com.databasir.core.meta.provider.MetaProviders;
|
||||
import com.databasir.core.meta.provider.condition.Condition;
|
||||
import com.databasir.core.render.Render;
|
||||
import com.databasir.core.render.RenderConfig;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.sql.Connection;
|
||||
import java.util.Optional;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public class Databasir {
|
||||
|
||||
private final DatabasirConfig config;
|
||||
|
||||
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();
|
||||
return MetaProviders
|
||||
.of(connection)
|
||||
.select(connection, condition);
|
||||
}
|
||||
|
||||
public void renderAsMarkdown(DatabaseMeta meta, OutputStream out) throws IOException {
|
||||
renderAsMarkdown(new RenderConfig(), meta, out);
|
||||
}
|
||||
|
||||
public void renderAsMarkdown(RenderConfig config, DatabaseMeta meta, OutputStream stream) throws IOException {
|
||||
Render.markdownRender(config).rendering(meta, stream);
|
||||
}
|
||||
|
||||
public static Databasir of() {
|
||||
return of(new DatabasirConfig());
|
||||
}
|
||||
|
||||
public static Databasir of(DatabasirConfig config) {
|
||||
return new Databasir(config);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package com.databasir.core;
|
||||
|
||||
import com.databasir.core.meta.repository.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
|
@ -11,18 +10,6 @@ import java.util.HashSet;
|
|||
@Setter
|
||||
public class DatabasirConfig {
|
||||
|
||||
private IndexMetaRepository indexMetaRepository;
|
||||
|
||||
private TriggerMetaRepository triggerMetaRepository;
|
||||
|
||||
private ColumnMetaRepository columnMetaRepository;
|
||||
|
||||
private ForeignKeyMetaRepository foreignKeyMetaRepository;
|
||||
|
||||
private TableMetaRepository tableMetaRepository;
|
||||
|
||||
private DatabaseMetaRepository databaseMetaRepository;
|
||||
|
||||
private Collection<String> ignoreTableNameRegex = new HashSet<>();
|
||||
|
||||
private Collection<String> ignoreTableColumnNameRegex = new HashSet<>();
|
|
@ -1,12 +1,12 @@
|
|||
package com.databasir.core.meta.repository;
|
||||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.data.ColumnMeta;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.List;
|
||||
|
||||
public interface ColumnMetaRepository {
|
||||
public interface ColumnMetaProvider {
|
||||
|
||||
List<ColumnMeta> selectColumns(Connection connection, TableCondition condition);
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package com.databasir.core.meta.repository;
|
||||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.data.DatabaseMeta;
|
||||
import com.databasir.core.meta.repository.condition.Condition;
|
||||
import com.databasir.core.meta.provider.condition.Condition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface DatabaseMetaRepository {
|
||||
public interface DatabaseMetaProvider {
|
||||
|
||||
Optional<DatabaseMeta> select(Connection connection, Condition condition);
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package com.databasir.core.meta.repository;
|
||||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.data.ForeignKeyMeta;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.List;
|
||||
|
||||
public interface ForeignKeyMetaRepository {
|
||||
public interface ForeignKeyMetaProvider {
|
||||
|
||||
List<ForeignKeyMeta> selectForeignKeys(Connection connection, TableCondition condition);
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package com.databasir.core.meta.repository;
|
||||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.data.IndexMeta;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.List;
|
||||
|
||||
public interface IndexMetaRepository {
|
||||
public interface IndexMetaProvider {
|
||||
|
||||
List<IndexMeta> selectIndexes(Connection connection, TableCondition condition);
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.provider.jdbc.*;
|
||||
import com.databasir.core.meta.provider.mysql.MysqlTableTriggerMetaProvider;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.SQLException;
|
||||
|
||||
@Slf4j
|
||||
public class MetaProviders {
|
||||
|
||||
public static DatabaseMetaProvider jdbc() {
|
||||
var columnMetaProvider = new JdbcColumnMetaProvider();
|
||||
var foreignKeyMetaProvider = new JdbcForeignKeyMetaProvider();
|
||||
var indexMetaProvider = new JdbcIndexMetaProvider();
|
||||
var triggerMetaProvider = new JdbcTriggerMetaProvider();
|
||||
var tableMetaProvider = new JdbcTableMetaProvider(
|
||||
columnMetaProvider,
|
||||
indexMetaProvider,
|
||||
triggerMetaProvider,
|
||||
foreignKeyMetaProvider
|
||||
);
|
||||
return new JdbcDatabaseMetaProvider(tableMetaProvider);
|
||||
}
|
||||
|
||||
public static DatabaseMetaProvider of(Connection connection) {
|
||||
String url;
|
||||
try {
|
||||
DatabaseMetaData metaData = connection.getMetaData();
|
||||
url = metaData.getURL();
|
||||
} catch (SQLException e) {
|
||||
log.warn("failed to get connect url, {}, fallback to jdbc provider", e.getMessage());
|
||||
return jdbc();
|
||||
}
|
||||
if (url.contains(":sqlserver:")) {
|
||||
return jdbc();
|
||||
}
|
||||
if (url.contains(":mysql:")) {
|
||||
return mysql();
|
||||
}
|
||||
return jdbc();
|
||||
}
|
||||
|
||||
private static DatabaseMetaProvider mysql() {
|
||||
var columnMetaProvider = new JdbcColumnMetaProvider();
|
||||
var foreignKeyMetaProvider = new JdbcForeignKeyMetaProvider();
|
||||
var indexMetaProvider = new JdbcIndexMetaProvider();
|
||||
var triggerMetaProvider = new MysqlTableTriggerMetaProvider();
|
||||
var tableMetaProvider = new JdbcTableMetaProvider(
|
||||
columnMetaProvider,
|
||||
indexMetaProvider,
|
||||
triggerMetaProvider,
|
||||
foreignKeyMetaProvider
|
||||
);
|
||||
return new JdbcDatabaseMetaProvider(tableMetaProvider);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
package com.databasir.core.meta.repository;
|
||||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.data.TableMeta;
|
||||
import com.databasir.core.meta.repository.condition.Condition;
|
||||
import com.databasir.core.meta.provider.condition.Condition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.List;
|
||||
|
||||
public interface TableMetaRepository {
|
||||
public interface TableMetaProvider {
|
||||
|
||||
List<TableMeta> selectTables(Connection connection, Condition condition);
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package com.databasir.core.meta.repository;
|
||||
package com.databasir.core.meta.provider;
|
||||
|
||||
import com.databasir.core.meta.data.TriggerMeta;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.List;
|
||||
|
||||
public interface TriggerMetaRepository {
|
||||
public interface TriggerMetaProvider {
|
||||
|
||||
List<TriggerMeta> selectTriggers(Connection connection, TableCondition condition);
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.databasir.core.meta.repository.condition;
|
||||
package com.databasir.core.meta.provider.condition;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
|
@ -1,4 +1,4 @@
|
|||
package com.databasir.core.meta.repository.condition;
|
||||
package com.databasir.core.meta.provider.condition;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
|
@ -1,8 +1,8 @@
|
|||
package com.databasir.core.meta.repository.impl.jdbc;
|
||||
package com.databasir.core.meta.provider.jdbc;
|
||||
|
||||
import com.databasir.core.meta.data.ColumnMeta;
|
||||
import com.databasir.core.meta.repository.ColumnMetaRepository;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.ColumnMetaProvider;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
@ -15,7 +15,7 @@ import java.util.List;
|
|||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class JdbcColumnMetaRepository implements ColumnMetaRepository {
|
||||
public class JdbcColumnMetaProvider implements ColumnMetaProvider {
|
||||
|
||||
@Override
|
||||
public List<ColumnMeta> selectColumns(Connection connection, TableCondition tableCondition) {
|
|
@ -1,10 +1,10 @@
|
|||
package com.databasir.core.meta.repository.impl.jdbc;
|
||||
package com.databasir.core.meta.provider.jdbc;
|
||||
|
||||
import com.databasir.core.meta.data.DatabaseMeta;
|
||||
import com.databasir.core.meta.data.TableMeta;
|
||||
import com.databasir.core.meta.repository.DatabaseMetaRepository;
|
||||
import com.databasir.core.meta.repository.TableMetaRepository;
|
||||
import com.databasir.core.meta.repository.condition.Condition;
|
||||
import com.databasir.core.meta.provider.DatabaseMetaProvider;
|
||||
import com.databasir.core.meta.provider.TableMetaProvider;
|
||||
import com.databasir.core.meta.provider.condition.Condition;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
@ -16,9 +16,9 @@ import java.util.Objects;
|
|||
import java.util.Optional;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class JdbcDatabaseMetaRepository implements DatabaseMetaRepository {
|
||||
public class JdbcDatabaseMetaProvider implements DatabaseMetaProvider {
|
||||
|
||||
private final TableMetaRepository tableMetaRepository;
|
||||
private final TableMetaProvider tableMetaProvider;
|
||||
|
||||
@Override
|
||||
public Optional<DatabaseMeta> select(Connection connection, Condition condition) {
|
||||
|
@ -28,7 +28,7 @@ public class JdbcDatabaseMetaRepository implements DatabaseMetaRepository {
|
|||
while (catalogs.next()) {
|
||||
String catalogName = catalogs.getString("TABLE_CAT");
|
||||
if (Objects.equals(condition.getDatabaseName(), catalogName)) {
|
||||
List<TableMeta> tableDocs = tableMetaRepository.selectTables(connection, condition);
|
||||
List<TableMeta> tableDocs = tableMetaProvider.selectTables(connection, condition);
|
||||
DatabaseMeta meta = DatabaseMeta.builder()
|
||||
.productName(metaData.getDatabaseProductName())
|
||||
.productVersion(metaData.getDatabaseProductVersion())
|
||||
|
@ -44,7 +44,7 @@ public class JdbcDatabaseMetaRepository implements DatabaseMetaRepository {
|
|||
while (schemas.next()) {
|
||||
String schemaName = schemas.getString("TABLE_SCHEM");
|
||||
if (Objects.equals(condition.getSchemaName(), schemaName)) {
|
||||
List<TableMeta> tableDocs = tableMetaRepository.selectTables(connection, condition);
|
||||
List<TableMeta> tableDocs = tableMetaProvider.selectTables(connection, condition);
|
||||
DatabaseMeta meta = DatabaseMeta.builder()
|
||||
.productName(metaData.getDatabaseProductName())
|
||||
.productVersion(metaData.getDatabaseProductVersion())
|
|
@ -1,8 +1,8 @@
|
|||
package com.databasir.core.meta.repository.impl.jdbc;
|
||||
package com.databasir.core.meta.provider.jdbc;
|
||||
|
||||
import com.databasir.core.meta.data.ForeignKeyMeta;
|
||||
import com.databasir.core.meta.repository.ForeignKeyMetaRepository;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.ForeignKeyMetaProvider;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
@ -13,7 +13,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
public class JdbcForeignKeyMetaRepository implements ForeignKeyMetaRepository {
|
||||
public class JdbcForeignKeyMetaProvider implements ForeignKeyMetaProvider {
|
||||
|
||||
@Override
|
||||
public List<ForeignKeyMeta> selectForeignKeys(Connection connection, TableCondition condition) {
|
|
@ -1,8 +1,8 @@
|
|||
package com.databasir.core.meta.repository.impl.jdbc;
|
||||
package com.databasir.core.meta.provider.jdbc;
|
||||
|
||||
import com.databasir.core.meta.data.IndexMeta;
|
||||
import com.databasir.core.meta.repository.IndexMetaRepository;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.IndexMetaProvider;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
@ -11,7 +11,7 @@ import java.sql.SQLException;
|
|||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
public class JdbcIndexMetaRepository implements IndexMetaRepository {
|
||||
public class JdbcIndexMetaProvider implements IndexMetaProvider {
|
||||
@Override
|
||||
public List<IndexMeta> selectIndexes(Connection connection, TableCondition condition) {
|
||||
try {
|
|
@ -1,10 +1,10 @@
|
|||
package com.databasir.core.meta.repository.impl.jdbc;
|
||||
package com.databasir.core.meta.provider.jdbc;
|
||||
|
||||
import com.databasir.core.meta.data.ColumnMeta;
|
||||
import com.databasir.core.meta.data.TableMeta;
|
||||
import com.databasir.core.meta.repository.*;
|
||||
import com.databasir.core.meta.repository.condition.Condition;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.*;
|
||||
import com.databasir.core.meta.provider.condition.Condition;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
@ -16,15 +16,15 @@ import java.util.List;
|
|||
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class JdbcTableMetaRepository implements TableMetaRepository {
|
||||
public class JdbcTableMetaProvider implements TableMetaProvider {
|
||||
|
||||
private final ColumnMetaRepository columnMetaRepository;
|
||||
private final ColumnMetaProvider columnMetaProvider;
|
||||
|
||||
private final IndexMetaRepository indexMetaRepository;
|
||||
private final IndexMetaProvider indexMetaProvider;
|
||||
|
||||
private final TriggerMetaRepository triggerMetaRepository;
|
||||
private final TriggerMetaProvider triggerMetaProvider;
|
||||
|
||||
private final ForeignKeyMetaRepository foreignKeyMetaRepository;
|
||||
private final ForeignKeyMetaProvider foreignKeyMetaProvider;
|
||||
|
||||
@Override
|
||||
public List<TableMeta> selectTables(Connection connection, Condition condition) {
|
||||
|
@ -51,7 +51,7 @@ public class JdbcTableMetaRepository implements TableMetaRepository {
|
|||
String tableType = tablesResult.getString("TABLE_TYPE");
|
||||
String tableComment = tablesResult.getString("REMARKS");
|
||||
TableCondition tableCondition = TableCondition.of(condition, tableName);
|
||||
List<ColumnMeta> columns = columnMetaRepository.selectColumns(connection, tableCondition);
|
||||
List<ColumnMeta> columns = columnMetaProvider.selectColumns(connection, tableCondition);
|
||||
if (columns.isEmpty()) {
|
||||
if (log.isWarnEnabled()) {
|
||||
log.warn("ignored table: " + databaseName + "." + tableName
|
||||
|
@ -64,9 +64,9 @@ public class JdbcTableMetaRepository implements TableMetaRepository {
|
|||
.type(tableType)
|
||||
.comment(tableComment)
|
||||
.columns(columns)
|
||||
.foreignKeys(foreignKeyMetaRepository.selectForeignKeys(connection, tableCondition))
|
||||
.indexes(indexMetaRepository.selectIndexes(connection, tableCondition))
|
||||
.triggers(triggerMetaRepository.selectTriggers(connection, tableCondition))
|
||||
.foreignKeys(foreignKeyMetaProvider.selectForeignKeys(connection, tableCondition))
|
||||
.indexes(indexMetaProvider.selectIndexes(connection, tableCondition))
|
||||
.triggers(triggerMetaProvider.selectTriggers(connection, tableCondition))
|
||||
.build();
|
||||
tableMetas.add(tableMeta);
|
||||
}
|
|
@ -1,14 +1,14 @@
|
|||
package com.databasir.core.meta.repository.impl.jdbc;
|
||||
package com.databasir.core.meta.provider.jdbc;
|
||||
|
||||
import com.databasir.core.meta.data.TriggerMeta;
|
||||
import com.databasir.core.meta.repository.TriggerMetaRepository;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.TriggerMetaProvider;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class JdbcTriggerMetaRepository implements TriggerMetaRepository {
|
||||
public class JdbcTriggerMetaProvider implements TriggerMetaProvider {
|
||||
|
||||
@Override
|
||||
public List<TriggerMeta> selectTriggers(Connection connection, TableCondition condition) {
|
|
@ -1,8 +1,8 @@
|
|||
package com.databasir.core.meta.repository.impl.extension;
|
||||
package com.databasir.core.meta.provider.mysql;
|
||||
|
||||
import com.databasir.core.meta.data.TriggerMeta;
|
||||
import com.databasir.core.meta.repository.TriggerMetaRepository;
|
||||
import com.databasir.core.meta.repository.condition.TableCondition;
|
||||
import com.databasir.core.meta.provider.TriggerMetaProvider;
|
||||
import com.databasir.core.meta.provider.condition.TableCondition;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
@ -14,7 +14,7 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
public class MysqlTableTriggerMetaRepository implements TriggerMetaRepository {
|
||||
public class MysqlTableTriggerMetaProvider implements TriggerMetaProvider {
|
||||
|
||||
@Override
|
||||
public List<TriggerMeta> selectTriggers(Connection connection, TableCondition condition) {
|
|
@ -1,83 +0,0 @@
|
|||
package com.databasir.core;
|
||||
|
||||
import com.databasir.core.meta.data.DatabaseMeta;
|
||||
import com.databasir.core.meta.repository.*;
|
||||
import com.databasir.core.meta.repository.condition.Condition;
|
||||
import com.databasir.core.meta.repository.impl.jdbc.*;
|
||||
import com.databasir.core.render.Render;
|
||||
import com.databasir.core.render.RenderConfig;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.sql.Connection;
|
||||
import java.util.Optional;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public class Databasir {
|
||||
|
||||
private final DatabasirConfig config;
|
||||
|
||||
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();
|
||||
return config.getDatabaseMetaRepository().select(connection, condition);
|
||||
}
|
||||
|
||||
public void renderAsMarkdown(DatabaseMeta meta, OutputStream out) throws IOException {
|
||||
renderAsMarkdown(new RenderConfig(), meta, out);
|
||||
}
|
||||
|
||||
public void renderAsMarkdown(RenderConfig config, DatabaseMeta meta, OutputStream stream) throws IOException {
|
||||
Render.markdownRender(config).rendering(meta, stream);
|
||||
}
|
||||
|
||||
public static Databasir of() {
|
||||
return of(new DatabasirConfig());
|
||||
}
|
||||
|
||||
public static Databasir of(DatabasirConfig config) {
|
||||
TriggerMetaRepository triggerMetaRepository = config.getTriggerMetaRepository();
|
||||
if (triggerMetaRepository == null) {
|
||||
triggerMetaRepository = new JdbcTriggerMetaRepository();
|
||||
}
|
||||
IndexMetaRepository indexMetaRepository = config.getIndexMetaRepository();
|
||||
if (indexMetaRepository == null) {
|
||||
indexMetaRepository = new JdbcIndexMetaRepository();
|
||||
}
|
||||
ColumnMetaRepository columnMetaRepository = config.getColumnMetaRepository();
|
||||
if (columnMetaRepository == null) {
|
||||
columnMetaRepository = new JdbcColumnMetaRepository();
|
||||
}
|
||||
ForeignKeyMetaRepository foreignKeyMetaRepository = config.getForeignKeyMetaRepository();
|
||||
if (foreignKeyMetaRepository == null) {
|
||||
foreignKeyMetaRepository = new JdbcForeignKeyMetaRepository();
|
||||
}
|
||||
TableMetaRepository tableMetaRepository = config.getTableMetaRepository();
|
||||
if (tableMetaRepository == null) {
|
||||
tableMetaRepository = new JdbcTableMetaRepository(
|
||||
columnMetaRepository,
|
||||
indexMetaRepository,
|
||||
triggerMetaRepository,
|
||||
foreignKeyMetaRepository
|
||||
);
|
||||
}
|
||||
DatabaseMetaRepository databaseMetaRepository = config.getDatabaseMetaRepository();
|
||||
if (databaseMetaRepository == null) {
|
||||
databaseMetaRepository = new JdbcDatabaseMetaRepository(tableMetaRepository);
|
||||
}
|
||||
config.setTriggerMetaRepository(triggerMetaRepository);
|
||||
config.setIndexMetaRepository(indexMetaRepository);
|
||||
config.setColumnMetaRepository(columnMetaRepository);
|
||||
config.setTableMetaRepository(tableMetaRepository);
|
||||
config.setDatabaseMetaRepository(databaseMetaRepository);
|
||||
return new Databasir(config);
|
||||
}
|
||||
|
||||
}
|
|
@ -8,7 +8,7 @@ pluginManagement {
|
|||
}
|
||||
|
||||
rootProject.name = 'databasir'
|
||||
include 'plugin'
|
||||
include 'meta'
|
||||
include 'api'
|
||||
include 'common'
|
||||
include 'dao'
|
||||
|
|
Loading…
Reference in New Issue