Skip to content

Commit f1565e4

Browse files
committed
feat: add alterTable method
1 parent 87a41b5 commit f1565e4

File tree

12 files changed

+99
-3
lines changed

12 files changed

+99
-3
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@athenna/database",
3-
"version": "5.25.0",
3+
"version": "5.26.0",
44
"description": "The Athenna database handler for SQL/NoSQL.",
55
"license": "MIT",
66
"author": "João Lenon <lenon@athenna.io>",

src/database/DatabaseImpl.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,16 @@ export class DatabaseImpl<Driver extends DriverImpl = any> extends Macroable {
258258
await this.driver.createTable(table, closure)
259259
}
260260

261+
/**
262+
* Alter a table in database.
263+
*/
264+
public async alterTable(
265+
table: string,
266+
closure: (builder: Knex.TableBuilder) => void | Promise<void>
267+
): Promise<void> {
268+
await this.driver.alterTable(table, closure)
269+
}
270+
261271
/**
262272
* Drop a table in database.
263273
*/

src/database/drivers/Driver.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,14 @@ export abstract class Driver<Client = any, QB = any> {
278278
closure?: TableBuilder
279279
): Promise<void>
280280

281+
/**
282+
* Alter a table in database.
283+
*/
284+
public abstract alterTable(
285+
table: string,
286+
closure?: TableBuilder
287+
): Promise<void>
288+
281289
/**
282290
* Drop a table in database.
283291
*/

src/database/drivers/FakeDriver.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,11 @@ export class FakeDriver {
233233
this.tables.push(table)
234234
}
235235

236+
/**
237+
* Alter a table in database.
238+
*/
239+
public static async alterTable(): Promise<void> {}
240+
236241
/**
237242
* Drop a table in database.
238243
*/

src/database/drivers/MongoDriver.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,13 @@ export class MongoDriver extends Driver<Connection, Collection> {
334334
throw new NotImplementedMethodException(this.createTable.name, 'mongo')
335335
}
336336

337+
/**
338+
* Alter a table in database.
339+
*/
340+
public async alterTable(): Promise<void> {
341+
throw new NotImplementedMethodException(this.alterTable.name, 'mongo')
342+
}
343+
337344
/**
338345
* Drop a table in database.
339346
*/

src/database/drivers/MySqlDriver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,16 @@ export class MySqlDriver extends Driver<Knex, Knex.QueryBuilder> {
261261
await this.client.schema.createTable(table, closure)
262262
}
263263

264+
/**
265+
* Alter a table in database.
266+
*/
267+
public async alterTable(
268+
table: string,
269+
closure: (builder: Knex.TableBuilder) => void | Promise<void>
270+
): Promise<void> {
271+
await this.client.schema.alterTable(table, closure)
272+
}
273+
264274
/**
265275
* Drop a table in database.
266276
*/

src/database/drivers/PostgresDriver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,16 @@ export class PostgresDriver extends Driver<Knex, Knex.QueryBuilder> {
272272
await this.client.schema.createTable(table, closure)
273273
}
274274

275+
/**
276+
* Alter a table in database.
277+
*/
278+
public async alterTable(
279+
table: string,
280+
closure: (builder: Knex.TableBuilder) => void | Promise<void>
281+
): Promise<void> {
282+
await this.client.schema.alterTable(table, closure)
283+
}
284+
275285
/**
276286
* Drop a table in database.
277287
*/

src/database/drivers/SqliteDriver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,16 @@ export class SqliteDriver extends Driver<Knex, Knex.QueryBuilder> {
271271
await this.client.schema.createTable(table, closure)
272272
}
273273

274+
/**
275+
* Alter a table in database.
276+
*/
277+
public async alterTable(
278+
table: string,
279+
closure: (builder: Knex.TableBuilder) => void | Promise<void>
280+
): Promise<void> {
281+
await this.client.schema.alterTable(table, closure)
282+
}
283+
274284
/**
275285
* Drop a table in database.
276286
*/

src/database/transactions/Transaction.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,16 @@ export class Transaction<Client = any, QB = any> extends Macroable {
127127
return this.driver.createTable(table, closure)
128128
}
129129

130+
/**
131+
* Alter a table in database.
132+
*/
133+
public async alterTable(
134+
table: string,
135+
closure?: (builder: Knex.TableBuilder) => void | Promise<void>
136+
): Promise<void> {
137+
return this.driver.alterTable(table, closure)
138+
}
139+
130140
/**
131141
* Drop a table in database.
132142
*/

0 commit comments

Comments
 (0)