123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 'use strict';
- const MySQLQueryGenerator = require('../mysql/query-generator');
- const Utils = require('./../../utils');
- class MariaDBQueryGenerator extends MySQLQueryGenerator {
- createSchema(schema, options) {
- options = {
- 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};`;
- }
- }
- module.exports = MariaDBQueryGenerator;
|