mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 14:46:01 +00:00
mysql dumper POC
This commit is contained in:
@@ -31,11 +31,12 @@
|
||||
"prepublishOnly": "yarn build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"antares-mysql-dumper": "link:/Users/jena/jenasoft/antares-mysql-dumper",
|
||||
"dbgate-plugin-tools": "^1.0.7",
|
||||
"dbgate-query-splitter": "^4.8.3",
|
||||
"webpack": "^4.42.0",
|
||||
"webpack-cli": "^3.3.11",
|
||||
"dbgate-tools": "^4.1.1",
|
||||
"mysql2": "^2.2.5"
|
||||
"mysql2": "^2.2.5",
|
||||
"webpack": "^4.42.0",
|
||||
"webpack-cli": "^3.3.11"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ const driverBases = require('../frontend/drivers');
|
||||
const Analyser = require('./Analyser');
|
||||
const mysql2 = require('mysql2');
|
||||
const { createBulkInsertStreamBase, makeUniqueColumnNames } = require('dbgate-tools');
|
||||
const { MySqlDumper } = require('antares-mysql-dumper');
|
||||
|
||||
function extractColumns(fields) {
|
||||
if (fields) {
|
||||
@@ -28,7 +29,7 @@ const drivers = driverBases.map(driverBase => ({
|
||||
...driverBase,
|
||||
analyserClass: Analyser,
|
||||
|
||||
async connect({ server, port, user, password, database, ssl, isReadOnly }) {
|
||||
async connect({ server, port, user, password, database, ssl, isReadOnly, forceRowsAsObjects }) {
|
||||
const connection = mysql2.createConnection({
|
||||
host: server,
|
||||
port,
|
||||
@@ -36,7 +37,7 @@ const drivers = driverBases.map(driverBase => ({
|
||||
password,
|
||||
database,
|
||||
ssl,
|
||||
rowsAsArray: true,
|
||||
rowsAsArray: forceRowsAsObjects ? false : true,
|
||||
supportBigNumbers: true,
|
||||
bigNumberStrings: true,
|
||||
dateStrings: true,
|
||||
@@ -172,6 +173,15 @@ const drivers = driverBases.map(driverBase => ({
|
||||
// @ts-ignore
|
||||
return createBulkInsertStreamBase(this, stream, pool, name, options);
|
||||
},
|
||||
async createBackupDumper(pool, options) {
|
||||
const { outputFile, databaseName, schemaName } = options;
|
||||
const res = new MySqlDumper({
|
||||
connection: pool,
|
||||
schema: databaseName || schemaName,
|
||||
outputFile,
|
||||
});
|
||||
return res;
|
||||
},
|
||||
}));
|
||||
|
||||
module.exports = drivers;
|
||||
|
||||
@@ -47,6 +47,7 @@ const mysqlDriverBase = {
|
||||
defaultPort: 3306,
|
||||
getQuerySplitterOptions: () => mysqlSplitterOptions,
|
||||
readOnlySessions: true,
|
||||
supportsDatabaseDump: true,
|
||||
|
||||
getNewObjectTemplates() {
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user