mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 23:45:59 +00:00
oracle tests WIP
This commit is contained in:
@@ -70,3 +70,9 @@ services:
|
||||
# - cockroachdb
|
||||
# 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,
|
||||
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 = [
|
||||
// filter local testing
|
||||
'MySQL',
|
||||
'-MySQL',
|
||||
'-MariaDB',
|
||||
'-PostgreSQL',
|
||||
'-SQL Server',
|
||||
'-SQLite',
|
||||
'-CockroachDB',
|
||||
'-ClickHouse',
|
||||
'Oracle',
|
||||
];
|
||||
|
||||
const enginesPostgre = engines.filter(x => x.label == 'PostgreSQL');
|
||||
|
||||
@@ -32,12 +32,14 @@ async function connect(engine, database) {
|
||||
return conn;
|
||||
} else {
|
||||
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);
|
||||
|
||||
const res = await driver.connect({
|
||||
...connection,
|
||||
database,
|
||||
database: (driver.dialect.userDatabaseNamePrefix ?? '') + database,
|
||||
});
|
||||
return res;
|
||||
}
|
||||
@@ -55,12 +57,14 @@ async function prepareConnection(engine, database) {
|
||||
};
|
||||
} else {
|
||||
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);
|
||||
|
||||
return {
|
||||
...connection,
|
||||
database,
|
||||
database: (driver.dialect.userDatabaseNamePrefix ?? '') + database,
|
||||
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;
|
||||
requireFromDual?: boolean;
|
||||
userDatabaseNamePrefix?: string; // c## in Oracle
|
||||
|
||||
predefinedDataTypes: string[];
|
||||
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
module.exports = `
|
||||
select avv.*,
|
||||
ora_hash("create_sql") as "hash_code"
|
||||
select avv.*
|
||||
from (select
|
||||
view_name as "pure_name",
|
||||
-- owner as "schema_name",
|
||||
-- SUBSTR(text_vc, 1, 3900) AS "create_sql"
|
||||
text as "create_sql"
|
||||
from all_views av
|
||||
where owner = '$owner' and text is not null
|
||||
where owner = 'C##test' and text is not null
|
||||
) avv
|
||||
where 'views:' || "pure_name" =OBJECT_ID_CONDITION
|
||||
where 'views:' || "pure_name" is not null
|
||||
`;
|
||||
|
||||
@@ -20,6 +20,7 @@ const dialect = {
|
||||
quoteIdentifier(s) {
|
||||
return '"' + s + '"';
|
||||
},
|
||||
userDatabaseNamePrefix: 'c##',
|
||||
|
||||
createColumn: true,
|
||||
dropColumn: true,
|
||||
|
||||
Reference in New Issue
Block a user