@datatruck/cli 0.22.1 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Task/MysqlDumpTask.js +3 -3
- package/package.json +1 -1
- package/utils/fs.d.ts +1 -0
- package/utils/fs.js +17 -1
- package/utils/mysql.js +0 -1
package/Task/MysqlDumpTask.js
CHANGED
|
@@ -74,8 +74,8 @@ class MysqlDumpTask extends TaskAbstract_1.TaskAbstract {
|
|
|
74
74
|
files.every((file) => file === schemaFile || file === dataFile);
|
|
75
75
|
if (!successCsvDump)
|
|
76
76
|
throw new AppError_1.AppError(`Invalid csv dump files: ${files.join(", ")}`);
|
|
77
|
-
await (0,
|
|
78
|
-
await (0,
|
|
77
|
+
await (0, fs_1.safeRename)((0, path_1.join)(tableSharedPath, schemaFile), (0, path_1.join)(outputPath, `${tableName}${suffix.tableSchema}`));
|
|
78
|
+
await (0, fs_1.safeRename)((0, path_1.join)(tableSharedPath, dataFile), (0, path_1.join)(outputPath, `${tableName}${suffix.tableData}`));
|
|
79
79
|
}
|
|
80
80
|
finally {
|
|
81
81
|
await (0, promises_1.rm)(tableSharedPath, { recursive: true });
|
|
@@ -214,7 +214,7 @@ class MysqlDumpTask extends TaskAbstract_1.TaskAbstract {
|
|
|
214
214
|
});
|
|
215
215
|
const sharedFilePath = (0, path_1.join)(sharedDir, `tmp-dtt-restore-${data.snapshot.id.slice(0, 8)}-${tableName}.data.csv`);
|
|
216
216
|
try {
|
|
217
|
-
await (0,
|
|
217
|
+
await (0, fs_1.safeRename)(filePath, sharedFilePath);
|
|
218
218
|
await sql.importCsvFile(sharedFilePath, database.name, tableName);
|
|
219
219
|
}
|
|
220
220
|
finally {
|
package/package.json
CHANGED
package/utils/fs.d.ts
CHANGED
|
@@ -120,4 +120,5 @@ export declare function createWriteStreamPool(options: {
|
|
|
120
120
|
};
|
|
121
121
|
export declare function countFileLines(path: string): Promise<number>;
|
|
122
122
|
export declare function fetchData<T>(input: T, onPath?: (input: Exclude<T, string>) => string | undefined): Promise<string | null>;
|
|
123
|
+
export declare function safeRename(oldPath: string, newPath: string): Promise<void>;
|
|
123
124
|
export {};
|
package/utils/fs.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.fetchData = exports.countFileLines = exports.createWriteStreamPool = exports.createFileScanner = exports.cpy = exports.isNotFoundError = exports.updateFileStats = exports.copyFileWithStreams = exports.waitForClose = exports.writeGitIgnoreList = exports.fastglobToGitIgnore = exports.forEachFile = exports.readDir = exports.readPartialFile = exports.mkTmpDir = exports.fastFolderSizeAsync = exports.tmpDir = exports.rmTmpDir = exports.isTmpDir = exports.sessionTmpDir = exports.parentTmpDir = exports.findFile = exports.parsePackageFile = exports.parseFile = exports.parseFileExtensions = exports.writeJSONFile = exports.existsFile = exports.existsDir = exports.safeStat = exports.ensureEmptyDir = exports.mkdirIfNotExists = exports.isLocalDir = exports.isEmptyDir = exports.isWSLSystem = void 0;
|
|
6
|
+
exports.safeRename = exports.fetchData = exports.countFileLines = exports.createWriteStreamPool = exports.createFileScanner = exports.cpy = exports.isNotFoundError = exports.updateFileStats = exports.copyFileWithStreams = exports.waitForClose = exports.writeGitIgnoreList = exports.fastglobToGitIgnore = exports.forEachFile = exports.readDir = exports.readPartialFile = exports.mkTmpDir = exports.fastFolderSizeAsync = exports.tmpDir = exports.rmTmpDir = exports.isTmpDir = exports.sessionTmpDir = exports.parentTmpDir = exports.findFile = exports.parsePackageFile = exports.parseFile = exports.parseFileExtensions = exports.writeJSONFile = exports.existsFile = exports.existsDir = exports.safeStat = exports.ensureEmptyDir = exports.mkdirIfNotExists = exports.isLocalDir = exports.isEmptyDir = exports.isWSLSystem = void 0;
|
|
7
7
|
const globalData_1 = __importDefault(require("../globalData"));
|
|
8
8
|
const math_1 = require("./math");
|
|
9
9
|
const path_1 = require("./path");
|
|
@@ -544,3 +544,19 @@ async function fetchData(input, onPath) {
|
|
|
544
544
|
return null;
|
|
545
545
|
}
|
|
546
546
|
exports.fetchData = fetchData;
|
|
547
|
+
async function safeRename(oldPath, newPath) {
|
|
548
|
+
try {
|
|
549
|
+
await (0, promises_1.rename)(oldPath, newPath);
|
|
550
|
+
}
|
|
551
|
+
catch (error) {
|
|
552
|
+
if (error instanceof Error &&
|
|
553
|
+
error.message.includes("cross-device link not permitted")) {
|
|
554
|
+
await (0, promises_1.cp)(oldPath, newPath, { recursive: true });
|
|
555
|
+
await (0, promises_1.rm)(oldPath, { recursive: true });
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
throw error;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
exports.safeRename = safeRename;
|
package/utils/mysql.js
CHANGED
|
@@ -24,7 +24,6 @@ function createMysqlCli(options) {
|
|
|
24
24
|
`user = "${options.username}"`,
|
|
25
25
|
`password = "${password}"`,
|
|
26
26
|
];
|
|
27
|
-
console.log(data.join("\n"));
|
|
28
27
|
await (0, promises_1.writeFile)((defaultsFilePath = (0, path_1.join)(dir, "mysql.conf")), data.join("\n"));
|
|
29
28
|
return defaultsFilePath;
|
|
30
29
|
}
|