sequelize
Version:
Sequelize is a promise-based Node.js ORM tool for Postgres, MySQL, MariaDB, SQLite, Microsoft SQL Server, Amazon Redshift and Snowflake’s Data Cloud. It features solid transaction support, relations, eager and lazy loading, read replication and more.
70 lines (69 loc) • 2.48 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
const MySQLQueryGenerator = require("../mysql/query-generator");
const Utils = require("./../../utils");
class MariaDBQueryGenerator extends MySQLQueryGenerator {
createSchema(schema, options) {
options = __spreadValues({
charset: null,
collate: null
}, options);
return Utils.joinSQLFragments([
"CREATE SCHEMA IF NOT EXISTS",
this.quoteIdentifier(schema),
options.charset && `DEFAULT CHARACTER SET ${this.escape(options.charset)}`,
options.collate && `DEFAULT COLLATE ${this.escape(options.collate)}`,
";"
]);
}
dropSchema(schema) {
return `DROP SCHEMA IF EXISTS ${this.quoteIdentifier(schema)};`;
}
showSchemasQuery(options) {
const schemasToSkip = [
"'MYSQL'",
"'INFORMATION_SCHEMA'",
"'PERFORMANCE_SCHEMA'"
];
if (options.skip && Array.isArray(options.skip) && options.skip.length > 0) {
for (const schemaName of options.skip) {
schemasToSkip.push(this.escape(schemaName));
}
}
return Utils.joinSQLFragments([
"SELECT SCHEMA_NAME as schema_name",
"FROM INFORMATION_SCHEMA.SCHEMATA",
`WHERE SCHEMA_NAME NOT IN (${schemasToSkip.join(", ")})`,
";"
]);
}
showTablesQuery(database) {
let query = "SELECT TABLE_NAME, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'";
if (database) {
query += ` AND TABLE_SCHEMA = ${this.escape(database)}`;
} else {
query += " AND TABLE_SCHEMA NOT IN ('MYSQL', 'INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA')";
}
return `${query};`;
}
quoteIdentifier(identifier, force) {
return Utils.addTicks(Utils.removeTicks(identifier, "`"), "`");
}
}
module.exports = MariaDBQueryGenerator;
//# sourceMappingURL=query-generator.js.map
;