feat: refactor createDatabase method to remove databaseNodeId parameter and implement findOptimalNode in DatabaseNodeService for improved database node selection

This commit is contained in:
lborv
2025-10-09 19:40:52 +03:00
parent e89af0dd20
commit c3189bb2df
3 changed files with 21 additions and 11 deletions

View File

@ -18,6 +18,22 @@ export class DatabaseNodeService extends DatabaseEncryptionService {
return this.databaseNodeRepository.findOne({ where: { id } });
}
async findOptimalNode(): Promise<DatabaseNode | null> {
const nodes = await this.databaseNodeRepository.find({
relations: ["databases"],
});
if (nodes.length === 0) {
return null;
}
return nodes.reduce((optimalNode, currentNode) => {
const currentCount = currentNode.databases?.length || 0;
const optimalCount = optimalNode.databases?.length || 0;
return currentCount < optimalCount ? currentNode : optimalNode;
});
}
async initDatabase(
data: {
database: string;