mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 19:36:00 +00:00
db depoloy simple test
This commit is contained in:
34
packages/api/src/shell/generateDeploySql.js
Normal file
34
packages/api/src/shell/generateDeploySql.js
Normal file
@@ -0,0 +1,34 @@
|
||||
const {
|
||||
getAlterDatabaseScript,
|
||||
generateDbPairingId,
|
||||
matchPairedObjects,
|
||||
databaseInfoFromYamlModel,
|
||||
} = require('dbgate-tools');
|
||||
const importDbModel = require('../utility/importDbModel');
|
||||
const requireEngineDriver = require('../utility/requireEngineDriver');
|
||||
const connectUtility = require('../utility/connectUtility');
|
||||
|
||||
async function generateDeploySql({
|
||||
connection,
|
||||
systemConnection = undefined,
|
||||
driver = undefined,
|
||||
analysedStructure = undefined,
|
||||
modelFolder = undefined,
|
||||
loadedDbModel = undefined,
|
||||
}) {
|
||||
if (!driver) driver = requireEngineDriver(connection);
|
||||
if (!analysedStructure) {
|
||||
const pool = systemConnection || (await connectUtility(driver, connection));
|
||||
analysedStructure = await driver.analyseFull(pool);
|
||||
}
|
||||
|
||||
const deployedModel = generateDbPairingId(
|
||||
loadedDbModel ? databaseInfoFromYamlModel(loadedDbModel) : await importDbModel(modelFolder)
|
||||
);
|
||||
const currentModel = generateDbPairingId(analysedStructure);
|
||||
const currentModelPaired = matchPairedObjects(deployedModel, currentModel);
|
||||
const { sql } = getAlterDatabaseScript(currentModelPaired, deployedModel, {}, deployedModel, driver);
|
||||
return sql;
|
||||
}
|
||||
|
||||
module.exports = generateDeploySql;
|
||||
Reference in New Issue
Block a user