dbgate/integration-tests/engines.js

207 lines
4.8 KiB
JavaScript
Raw Normal View History

2021-05-27 08:53:53 +00:00
const views = {
type: 'views',
create1: 'CREATE VIEW obj1 AS SELECT id FROM t1',
create2: 'CREATE VIEW obj2 AS SELECT id FROM t2',
drop1: 'DROP VIEW obj1',
drop2: 'DROP VIEW obj2',
};
2021-05-28 20:18:06 +00:00
const matviews = {
type: 'matviews',
create1: 'CREATE MATERIALIZED VIEW obj1 AS SELECT id FROM t1',
create2: 'CREATE MATERIALIZED VIEW obj2 AS SELECT id FROM t2',
drop1: 'DROP MATERIALIZED VIEW obj1',
drop2: 'DROP MATERIALIZED VIEW obj2',
};
2021-05-27 08:53:53 +00:00
2021-05-27 07:12:21 +00:00
const engines = [
2021-05-27 11:07:58 +00:00
{
label: 'MySQL',
connection: {
engine: 'mysql@dbgate-plugin-mysql',
password: 'Pwd2020Db',
user: 'root',
server: 'mysql',
port: 3306,
},
local: {
server: 'localhost',
port: 15001,
},
2021-05-27 13:51:54 +00:00
// skipOnCI: true,
2021-05-27 11:07:58 +00:00
objects: [views],
2021-05-27 16:30:49 +00:00
dbSnapshotBySeconds: true,
2024-09-27 06:33:16 +00:00
dumpFile: 'data/chinook-mysql.sql',
dumpChecks: [
{
sql: 'select count(*) as res from genre',
res: '25',
},
],
2021-05-27 11:07:58 +00:00
},
{
label: 'MariaDB',
connection: {
engine: 'mariadb@dbgate-plugin-mysql',
password: 'Pwd2020Db',
user: 'root',
server: 'mysql',
port: 3306,
},
local: {
server: 'localhost',
port: 15004,
},
skipOnCI: true,
objects: [views],
dbSnapshotBySeconds: true,
2024-09-27 06:33:16 +00:00
dumpFile: 'data/chinook-mysql.sql',
dumpChecks: [
{
sql: 'select count(*) as res from genre',
res: '25',
},
],
},
2021-05-27 07:26:37 +00:00
{
label: 'PostgreSQL',
connection: {
engine: 'postgres@dbgate-plugin-postgres',
password: 'Pwd2020Db',
user: 'postgres',
2021-05-27 11:07:58 +00:00
server: 'postgres',
2021-05-27 10:38:27 +00:00
port: 5432,
2021-05-27 07:26:37 +00:00
},
2021-05-27 11:07:58 +00:00
local: {
server: 'localhost',
port: 15000,
},
objects: [
views,
2021-05-28 20:18:06 +00:00
matviews,
{
type: 'procedures',
create1: 'CREATE PROCEDURE obj1() LANGUAGE SQL AS $$ select * from t1 $$',
create2: 'CREATE PROCEDURE obj2() LANGUAGE SQL AS $$ select * from t2 $$',
drop1: 'DROP PROCEDURE obj1',
drop2: 'DROP PROCEDURE obj2',
},
2021-06-10 12:11:26 +00:00
{
type: 'functions',
2021-09-04 19:06:42 +00:00
create1:
'CREATE FUNCTION obj1() returns int LANGUAGE plpgsql AS $$ declare res integer; begin select count(*) into res from t1; return res; end; $$',
create2:
'CREATE FUNCTION obj2() returns int LANGUAGE plpgsql AS $$ declare res integer; begin select count(*) into res from t2; return res; end; $$',
2021-06-10 12:11:26 +00:00
drop1: 'DROP FUNCTION obj1',
drop2: 'DROP FUNCTION obj2',
},
],
2024-09-18 14:01:02 +00:00
supportSchemas: true,
supportRenameSqlObject: true,
2024-09-19 11:41:49 +00:00
defaultSchemaName: 'public',
2024-09-27 06:33:16 +00:00
dumpFile: 'data/chinook-postgre.sql',
dumpChecks: [
{
sql: 'select count(*) as res from "public"."Genre"',
res: '25',
},
],
2021-05-27 07:26:37 +00:00
},
2021-05-27 11:07:58 +00:00
{
label: 'SQL Server',
connection: {
engine: 'mssql@dbgate-plugin-mssql',
password: 'Pwd2020Db',
user: 'sa',
server: 'mssql',
port: 1433,
},
local: {
server: 'localhost',
port: 15002,
},
objects: [
views,
{
type: 'procedures',
create1: 'CREATE PROCEDURE obj1 AS SELECT id FROM t1',
create2: 'CREATE PROCEDURE obj2 AS SELECT id FROM t2',
drop1: 'DROP PROCEDURE obj1',
drop2: 'DROP PROCEDURE obj2',
},
],
2024-09-18 14:01:02 +00:00
supportSchemas: true,
supportRenameSqlObject: true,
2024-09-19 11:41:49 +00:00
defaultSchemaName: 'dbo',
2024-09-20 11:30:39 +00:00
// skipSeparateSchemas: true,
2021-05-27 11:07:58 +00:00
},
{
label: 'SQLite',
generateDbFile: true,
connection: {
engine: 'sqlite@dbgate-plugin-sqlite',
},
objects: [views],
2024-09-20 08:47:51 +00:00
skipOnCI: false,
2024-11-18 14:04:37 +00:00
skipChangeColumn: true,
2021-05-27 11:07:58 +00:00
},
{
label: 'CockroachDB',
connection: {
engine: 'cockroach@dbgate-plugin-postgres',
user: 'root',
server: 'cockroachdb',
port: 26257,
},
local: {
server: 'localhost',
port: 15003,
},
2021-05-28 13:47:48 +00:00
skipOnCI: true,
objects: [views, matviews],
2021-05-27 11:07:58 +00:00
},
2024-09-13 11:09:33 +00:00
{
label: 'ClickHouse',
connection: {
engine: 'clickhouse@dbgate-plugin-clickhouse',
databaseUrl: 'http://clickhouse:8123',
password: 'Pwd2020Db',
},
local: {
databaseUrl: 'http://localhost:15005',
},
2024-09-16 07:51:01 +00:00
skipOnCI: false,
2024-09-13 11:09:33 +00:00
objects: [views],
skipDataModifications: true,
skipReferences: true,
skipIndexes: true,
skipNullability: true,
skipUnique: true,
2024-09-13 13:10:58 +00:00
skipAutoIncrement: true,
skipPkColumnTesting: true,
2024-09-13 13:24:29 +00:00
skipDataDuplicator: true,
2024-09-13 14:11:38 +00:00
skipStringLength: true,
2024-09-16 07:47:44 +00:00
alterTableAddColumnSyntax: true,
dbSnapshotBySeconds: true,
2024-11-18 14:04:37 +00:00
skipChangeColumn: true,
2024-09-13 11:09:33 +00:00
},
2021-05-27 07:12:21 +00:00
];
2021-09-05 09:01:52 +00:00
const filterLocal = [
// filter local testing
2024-11-08 13:12:56 +00:00
'-MySQL',
2024-10-01 08:37:05 +00:00
'-MariaDB',
2024-11-18 13:56:59 +00:00
'-PostgreSQL',
'SQL Server',
'-SQLite',
'-CockroachDB',
2024-10-31 09:00:40 +00:00
'-ClickHouse',
2021-09-05 09:01:52 +00:00
];
const enginesPostgre = engines.filter(x => x.label == 'PostgreSQL');
2021-09-05 09:01:52 +00:00
module.exports = process.env.CITEST
? engines.filter(x => !x.skipOnCI)
: engines.filter(x => filterLocal.find(y => x.label == y));
module.exports.enginesPostgre = enginesPostgre;