目录结构
设计, 库
core
const ide = new ID({
hostNode, //
accessKeyId,
secretAccessKey,
version
})
const dbConfig = {
type,
host,
port,
username,
password,
database
};
const DB = new ID.DB({
...dbConfig
})
- ID.core.initConfigsSchema();
- applications //配置有哪些services? later设计
DB
- ID.DB.initConfigSchema() //设计
- ID.DB.getTables('xxx')
- // 需要标记是否是多对多表,schemaName,dbName | 是否需要持久化;
- ID.DB.getTablesWithRelationTree();
- ID.DB.getFieldsByTableName();
...
ES
- ID.ES.initConfigSchema()
- ID.ES.trigger.init();
- ID.ES.trigger._initTriggerFunction(); //是否需要可定义名称
- ID.ES.trigger.buildTrigger();
- ID.ES.trigger.buildManyToManyTrigger(); //设计
- ID.ES.trigger.rebuildAllTriggers();
- ID.DB.getTables();
- ID.ES.trigger.dropAllTriggers(); // 找到TriggerFunction的依赖
- ID.ES.trigger.dropTriggerFunction(); // 找到TriggerFunction的依赖
- ID.ES.trigger.getTriggerFunction(); // 目前是单数
- ID.ES.trigger.getTriggers();
- ID.ES.index.initGui(); //http server
//...json
- ID.ES.index.create(payload,otherSettings);
- ID.ES.index.rebuild();
- ...
deploy
- ID.deploy.createConfigSchema();
- ID.deploy.getTableChanges();
- ID.deploy.createRequest();
- ID.deploy.getRequestsList(); // 分表 | 不同type+json?
- ID.deploy.deployByRequestId();
- ID.deploy.isNeedIndexDeploy();
- ID.deploy.createVersionDeploy();
- ID.deploy.startIndexDeploy();
- ID.deploy.startVersionDeploy();
Version
//later
- ID.Version.init(); //如果没json文件则创建
- ID.Version.createSettings(payload);
- ID.Version.index.initGui(); //http server
- ID.Version.createConfigSchema();
当setting改变时 是否需要迁移文件,还是无脑新建schema
ID AWS SDK
ID.AWS.createSetting({
// region,
accessKeyId,
secretAccessKey,
// sqsSetting:{
// calDependentsUrl,
// syncDataUrl
// }
})
let setting = await ID.AWS.getSetting();
let sqs = new ID.AWS.SQS({setting})
场景
初始化项目
- 使用所有服务
- 使用部分服务
- 数据分布在不同数据库
es sync
- 新项目使用
- 历史项目使用
- 已有多个schema
- 变更数据库结构
- 变更index需求 (是否需要setting的version)
version
... - 变更数据库结构
- 变更setting