Skip to content

Commit 526b82c

Browse files
committed
#1 - Added parameter resettable in DatabaseMigrationContract method, allowing you to call the reset method to restore the database in a migration.
1 parent 9d8958a commit 526b82c

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/providers/database-migration-contract.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import { Injectable } from "@angular/core";
33
import { Version } from "./../model/version-model";
44
import { Observable } from "rxjs/Observable";
55
import { DatabaseTransaction } from "database-builder";
6+
import { DatabaseResettableContract } from "./database-resettable-contract";
67

78
@Injectable()
89
export abstract class DatabaseMigrationContract {
910

1011
public abstract to(
1112
version: Version,
1213
transation: DatabaseTransaction,
13-
mappers: MappersTableBase
14+
mappers: MappersTableBase,
15+
resettable: DatabaseResettableContract
1416
): Array<Observable<any>>;
1517
}

src/providers/database-migration.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { Injectable, Injector, Optional } from "@angular/core";
66
import { DatabaseTransaction, Ddl } from "database-builder";
77
import { DatabaseMigrationContract } from "./database-migration-contract";
88
import { DatabaseMigrationBase } from "../utils/database-migration-base";
9+
import { DatabaseResettableContract } from "./database-resettable-contract";
910

1011
@Injectable()
11-
export class DatabaseMigration extends DatabaseMigrationBase {
12+
export class DatabaseMigration extends DatabaseMigrationBase implements DatabaseResettableContract{
1213

1314
private _settings: DatabaseSettingsFactoryContract;
1415

@@ -20,7 +21,7 @@ export class DatabaseMigration extends DatabaseMigrationBase {
2021
this._settings = _injector.get(DatabaseSettingsFactoryContract);
2122
}
2223

23-
public databaseReset(transation: DatabaseTransaction): Observable<any> {
24+
public reset(transation: DatabaseTransaction): Observable<any> {
2425

2526
// tslint:disable-next-line:no-console
2627
console.info("database reset");
@@ -47,15 +48,18 @@ export class DatabaseMigration extends DatabaseMigrationBase {
4748
let observablesNested: Array<Observable<any>> = [];
4849
if (this._databaseMigrationContract) {
4950
const toObservables = this._databaseMigrationContract.to(
50-
version, transation, this._settings.mapper(this._injector)
51+
version,
52+
transation,
53+
this._settings.mapper(this._injector),
54+
this
5155
);
5256
if (toObservables && toObservables.length > 0) {
5357
observablesNested = observablesNested.concat(toObservables);
5458
}
5559
}
5660

5761
if (observablesNested.length === 0 && version.oldVersion < 1) {
58-
observablesNested.push(this.databaseReset(transation));
62+
observablesNested.push(this.reset(transation));
5963
}
6064

6165
this.callNested(observablesNested, 0).subscribe(result => {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { DatabaseTransaction } from "database-builder";
2+
import { Observable } from "rxjs/Observable";
3+
4+
export interface DatabaseResettableContract{
5+
reset(transation: DatabaseTransaction): Observable<any>;
6+
}

0 commit comments

Comments
 (0)