mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 13:13:58 +00:00
oracle tests WIP
This commit is contained in:
@@ -70,3 +70,9 @@ services:
|
|||||||
# - cockroachdb
|
# - cockroachdb
|
||||||
# restart: on-failure
|
# restart: on-failure
|
||||||
|
|
||||||
|
oracle:
|
||||||
|
image: container-registry.oracle.com/database/express:21.3.0-xe
|
||||||
|
environment:
|
||||||
|
ORACLE_PWD: Pwd2020Db
|
||||||
|
ports:
|
||||||
|
- 15006:1521
|
||||||
|
|||||||
@@ -400,17 +400,35 @@ end;$$`,
|
|||||||
dbSnapshotBySeconds: true,
|
dbSnapshotBySeconds: true,
|
||||||
skipChangeColumn: true,
|
skipChangeColumn: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Oracle',
|
||||||
|
connection: {
|
||||||
|
engine: 'oracle@dbgate-plugin-oracle',
|
||||||
|
password: 'Pwd2020Db',
|
||||||
|
user: 'system',
|
||||||
|
server: 'oracle',
|
||||||
|
port: 1521,
|
||||||
|
serviceName: 'xe',
|
||||||
|
},
|
||||||
|
local: {
|
||||||
|
server: 'localhost',
|
||||||
|
port: 15006,
|
||||||
|
},
|
||||||
|
skipOnCI: true,
|
||||||
|
dbSnapshotBySeconds: true,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const filterLocal = [
|
const filterLocal = [
|
||||||
// filter local testing
|
// filter local testing
|
||||||
'MySQL',
|
'-MySQL',
|
||||||
'-MariaDB',
|
'-MariaDB',
|
||||||
'-PostgreSQL',
|
'-PostgreSQL',
|
||||||
'-SQL Server',
|
'-SQL Server',
|
||||||
'-SQLite',
|
'-SQLite',
|
||||||
'-CockroachDB',
|
'-CockroachDB',
|
||||||
'-ClickHouse',
|
'-ClickHouse',
|
||||||
|
'Oracle',
|
||||||
];
|
];
|
||||||
|
|
||||||
const enginesPostgre = engines.filter(x => x.label == 'PostgreSQL');
|
const enginesPostgre = engines.filter(x => x.label == 'PostgreSQL');
|
||||||
|
|||||||
@@ -32,12 +32,14 @@ async function connect(engine, database) {
|
|||||||
return conn;
|
return conn;
|
||||||
} else {
|
} else {
|
||||||
const conn = await driver.connect(connection);
|
const conn = await driver.connect(connection);
|
||||||
await driver.query(conn, `CREATE DATABASE ${database}`);
|
const dmp = driver.createDumper();
|
||||||
|
dmp.createDatabase(database);
|
||||||
|
await driver.query(conn, dmp.s);
|
||||||
await driver.close(conn);
|
await driver.close(conn);
|
||||||
|
|
||||||
const res = await driver.connect({
|
const res = await driver.connect({
|
||||||
...connection,
|
...connection,
|
||||||
database,
|
database: (driver.dialect.userDatabaseNamePrefix ?? '') + database,
|
||||||
});
|
});
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@@ -55,12 +57,14 @@ async function prepareConnection(engine, database) {
|
|||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
const conn = await driver.connect(connection);
|
const conn = await driver.connect(connection);
|
||||||
await driver.query(conn, `CREATE DATABASE ${database}`);
|
const dmp = driver.createDumper();
|
||||||
|
dmp.createDatabase(database);
|
||||||
|
await driver.query(conn, dmp.s);
|
||||||
await driver.close(conn);
|
await driver.close(conn);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...connection,
|
...connection,
|
||||||
database,
|
database: (driver.dialect.userDatabaseNamePrefix ?? '') + database,
|
||||||
isPreparedOnly: true,
|
isPreparedOnly: true,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
1
packages/types/dialect.d.ts
vendored
1
packages/types/dialect.d.ts
vendored
@@ -51,6 +51,7 @@ export interface SqlDialect {
|
|||||||
|
|
||||||
dropReferencesWhenDropTable?: boolean;
|
dropReferencesWhenDropTable?: boolean;
|
||||||
requireFromDual?: boolean;
|
requireFromDual?: boolean;
|
||||||
|
userDatabaseNamePrefix?: string; // c## in Oracle
|
||||||
|
|
||||||
predefinedDataTypes: string[];
|
predefinedDataTypes: string[];
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
module.exports = `
|
module.exports = `
|
||||||
select avv.*,
|
select avv.*
|
||||||
ora_hash("create_sql") as "hash_code"
|
|
||||||
from (select
|
from (select
|
||||||
view_name as "pure_name",
|
view_name as "pure_name",
|
||||||
-- owner as "schema_name",
|
|
||||||
-- SUBSTR(text_vc, 1, 3900) AS "create_sql"
|
|
||||||
text as "create_sql"
|
text as "create_sql"
|
||||||
from all_views av
|
from all_views av
|
||||||
where owner = '$owner' and text is not null
|
where owner = 'C##test' and text is not null
|
||||||
) avv
|
) avv
|
||||||
where 'views:' || "pure_name" =OBJECT_ID_CONDITION
|
where 'views:' || "pure_name" is not null
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const dialect = {
|
|||||||
quoteIdentifier(s) {
|
quoteIdentifier(s) {
|
||||||
return '"' + s + '"';
|
return '"' + s + '"';
|
||||||
},
|
},
|
||||||
|
userDatabaseNamePrefix: 'c##',
|
||||||
|
|
||||||
createColumn: true,
|
createColumn: true,
|
||||||
dropColumn: true,
|
dropColumn: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user