-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathhacks.patch
More file actions
118 lines (115 loc) · 5.14 KB
/
hacks.patch
File metadata and controls
118 lines (115 loc) · 5.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
diff --git a/src/packages/sdk/src/convertCredentials.ts b/src/packages/sdk/src/convertCredentials.ts
index 3bcc844f..45a0b11b 100644
--- a/src/packages/sdk/src/convertCredentials.ts
+++ b/src/packages/sdk/src/convertCredentials.ts
@@ -128,7 +128,7 @@ export function uriToCredentials(
database,
schema: schema || defaultSchema,
uri: connectionString,
- ssl: Boolean(uri.query.sslmode),
+ ssl: (uri.query.sslmode == 'true'),
socket: socket || host,
extraFields,
}
diff --git a/src/packages/tests/src/__tests__/integration/mariadb/__database.ts b/src/packages/tests/src/__tests__/integration/mariadb/__database.ts
index f143c928..3edcbac1 100644
--- a/src/packages/tests/src/__tests__/integration/mariadb/__database.ts
+++ b/src/packages/tests/src/__tests__/integration/mariadb/__database.ts
@@ -15,15 +15,22 @@ export const database = {
port: credentials.port,
user: credentials.user,
password: credentials.password,
+ ssl: credentials.ssl,
+ allowPublicKeyRetrieval: true,
multipleStatements: true,
})
},
beforeEach: async (db, sqlScenario, ctx) => {
- const sqlUp = `
- DROP DATABASE IF EXISTS ${ctx.id};
- CREATE DATABASE ${ctx.id};
- USE ${ctx.id};`
- await db.query(sqlUp + sqlScenario)
+ await db.query("USE " + process.env.VT_DATABASE);
+ const foreign_keys = await db.query({rowsAsArray: true, sql: "SELECT DISTINCT TABLE_NAME, CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL"});
+ for(let row of foreign_keys) {
+ await db.query("ALTER TABLE `" + row[0] + "` DROP FOREIGN KEY `" + row[1] + "`");
+ }
+ const tables = await db.query({rowsAsArray: true, sql: "SHOW TABLES"});
+ for(let row of tables) {
+ await db.query("DROP TABLE `" + row[0] + "`");
+ }
+ await db.query(sqlScenario)
},
close: (db) => db.end(),
} as Input<mariadb.Connection>['database']
@@ -31,7 +38,7 @@ export const database = {
function getConnectionInfo(ctx: Context) {
const serviceConnectionString =
process.env.TEST_MARIADB_BASE_URI || 'mysql://root:root@localhost:4306'
- const connectionString = `${serviceConnectionString}/${ctx.id}`
+ const connectionString = process.env.TEST_MARIADB_URI || `${serviceConnectionString}/${ctx.id}`
const credentials = uriToCredentials(connectionString)
return {
diff --git a/src/packages/tests/src/__tests__/integration/mysql/__database.ts b/src/packages/tests/src/__tests__/integration/mysql/__database.ts
index 2a1d7a85..a21f66fe 100644
--- a/src/packages/tests/src/__tests__/integration/mysql/__database.ts
+++ b/src/packages/tests/src/__tests__/integration/mysql/__database.ts
@@ -14,15 +14,22 @@ export const database = {
port: credentials.port,
user: credentials.user,
password: credentials.password,
+ ssl: credentials.ssl,
+ allowPublicKeyRetrieval: true,
multipleStatements: true,
})
},
beforeEach: async (db, sqlScenario, ctx) => {
- const sqlUp = `
- DROP DATABASE IF EXISTS ${ctx.id};
- CREATE DATABASE ${ctx.id};
- USE ${ctx.id};`
- await db.query(sqlUp + sqlScenario)
+ await db.query("USE " + process.env.VT_DATABASE);
+ const foreign_keys = await db.query({rowsAsArray: true, sql: "SELECT DISTINCT TABLE_NAME, CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL"});
+ for(let row of foreign_keys) {
+ await db.query("ALTER TABLE `" + row[0] + "` DROP FOREIGN KEY `" + row[1] + "`");
+ }
+ const tables = await db.query({rowsAsArray: true, sql: "SHOW TABLES"});
+ for(let row of tables) {
+ await db.query("DROP TABLE `" + row[0] + "`");
+ }
+ await db.query(sqlScenario)
},
close: (db) => db.end(),
} as Input<mariadb.Connection>['database']
@@ -30,7 +37,7 @@ export const database = {
function getConnectionInfo(ctx: Context) {
const serviceConnectionString =
process.env.TEST_MYSQL_BASE_URI || 'mysql://root:root@localhost:3306'
- const connectionString = `${serviceConnectionString}/${ctx.id}`
+ const connectionString = process.env.TEST_MYSQL_URI || `${serviceConnectionString}/${ctx.id}`
const credentials = uriToCredentials(connectionString)
return {
diff --git a/src/packages/client/src/utils/setupMysql.ts b/src/packages/client/src/utils/setupMysql.ts
index 55b99f0ce..d2b0b3da4 100644
--- a/src/packages/client/src/utils/setupMysql.ts
+++ b/src/packages/client/src/utils/setupMysql.ts
@@ -44,8 +44,15 @@ export async function tearDownMysql(connectionString: string) {
multipleStatements: true,
})
- await db.query(`
- DROP DATABASE IF EXISTS \`${credentials.database}\`;
- `)
+
+ await db.query("USE " + credentials.database);
+ const foreign_keys = await db.query({rowsAsArray: true, sql: "SELECT DISTINCT TABLE_NAME, CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL"});
+ for(let row of foreign_keys) {
+ await db.query("ALTER TABLE `" + row[0] + "` DROP FOREIGN KEY `" + row[1] + "`");
+ }
+ const tables = await db.query({rowsAsArray: true, sql: "SHOW TABLES"});
+ for(let row of tables) {
+ await db.query("DROP TABLE `" + row[0] + "`");
+ }
await db.end()
}