fixes #6204 tested code
This commit is contained in:
parent
11a57b8168
commit
38aec90073
|
@ -22,3 +22,8 @@ CREATE TABLE `versionLog` (
|
||||||
|
|
||||||
ALTER TABLE `versionLog`
|
ALTER TABLE `versionLog`
|
||||||
ADD PRIMARY KEY (`code`,`number`,`file`);
|
ADD PRIMARY KEY (`code`,`number`,`file`);
|
||||||
|
|
||||||
|
CREATE TABLE `util`.`versionConfig` (
|
||||||
|
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
`realm` VARCHAR(16) NULL DEFAULT NULL COMMENT 'Data set on which the project runs'
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
16
myt-push.js
16
myt-push.js
|
@ -151,19 +151,19 @@ class Push extends Command {
|
||||||
function isUndoScript(script) {
|
function isUndoScript(script) {
|
||||||
return /\.undo\.sql$/.test(script);
|
return /\.undo\.sql$/.test(script);
|
||||||
}
|
}
|
||||||
function isOtherEnvScript(script, env) {
|
function isOtherRealmScript(script, realm) {
|
||||||
const splitScript = script.split('.');
|
const splitScript = script.split('.');
|
||||||
const envPart = splitScript[splitScript.length - 2];
|
const realmPart = splitScript[splitScript.length - 2];
|
||||||
|
|
||||||
if (splitScript.length <= 2) {
|
if (splitScript.length <= 2) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!env) {
|
if (!realm) {
|
||||||
return !!envPart;
|
return !!realmPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
return envPart && envPart !== env;
|
return realmPart && realmPart !== realm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,6 +207,8 @@ class Push extends Command {
|
||||||
[opts.code, versionNumber]
|
[opts.code, versionNumber]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const realm = await myt.fetchDbRealm();
|
||||||
|
|
||||||
for (const script of scripts)
|
for (const script of scripts)
|
||||||
if (!isUndoScript(script)
|
if (!isUndoScript(script)
|
||||||
&& versionLog.findIndex(x => x.file == script) === -1) {
|
&& versionLog.findIndex(x => x.file == script) === -1) {
|
||||||
|
@ -218,14 +220,14 @@ class Push extends Command {
|
||||||
logVersion(`[${versionNumber}]`.cyan, versionName);
|
logVersion(`[${versionNumber}]`.cyan, versionName);
|
||||||
|
|
||||||
for (const script of scripts) {
|
for (const script of scripts) {
|
||||||
if (!/^[0-9]{2}-[a-zA-Z0-9_]+(.undo)?\.sql$/.test(script)) {
|
if (!/^[0-9]{2}-[a-zA-Z0-9_]+(\..+)?\.sql$/.test(script)) {
|
||||||
logScript('[W]'.yellow, script, `Wrong file name.`);
|
logScript('[W]'.yellow, script, `Wrong file name.`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (isUndoScript(script))
|
if (isUndoScript(script))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (isOtherEnvScript(script, opts.env))
|
if (isOtherRealmScript(script, realm))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const [[row]] = await conn.query(
|
const [[row]] = await conn.query(
|
||||||
|
|
8
myt.js
8
myt.js
|
@ -323,6 +323,14 @@ class Myt {
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async fetchDbRealm() {
|
||||||
|
const [[realm]] = await this.conn.query(
|
||||||
|
`SELECT realm
|
||||||
|
FROM versionConfig`
|
||||||
|
);
|
||||||
|
return realm?.realm;
|
||||||
|
}
|
||||||
parseVersionDir(versionDir) {
|
parseVersionDir(versionDir) {
|
||||||
const match = versionDir.match(/^([0-9]+)-([a-zA-Z0-9]+)?$/);
|
const match = versionDir.match(/^([0-9]+)-([a-zA-Z0-9]+)?$/);
|
||||||
if (!match) return null;
|
if (!match) return null;
|
||||||
|
|
Loading…
Reference in New Issue