1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-23 00:22:19 +01:00

fix: import should not drop built-in strategies

This commit is contained in:
Ivar Conradi Østhus 2021-08-26 22:41:51 +02:00
parent 9e1686edab
commit 56cd0d6912
No known key found for this signature in database
GPG Key ID: 31AC596886B0BD09
4 changed files with 8 additions and 10 deletions

View File

@ -155,13 +155,10 @@ export default class StrategyStore implements IStrategyStore {
await this.db(TABLE).insert(rowData).onConflict(['name']).merge(); await this.db(TABLE).insert(rowData).onConflict(['name']).merge();
} }
async dropStrategies(): Promise<void> { async dropCustomStrategies(): Promise<void> {
await this.db(TABLE) await this.db(TABLE)
.where({ built_in: 0 }) // eslint-disable-line .where({ built_in: 0 }) // eslint-disable-line
.delete() .delete();
.catch((err) =>
this.logger.error('Could not drop strategies, error: ', err),
);
} }
} }

View File

@ -315,7 +315,7 @@ export default class StateService {
if (dropBeforeImport) { if (dropBeforeImport) {
this.logger.info('Dropping existing strategies'); this.logger.info('Dropping existing strategies');
await this.strategyStore.deleteAll(); await this.strategyStore.dropCustomStrategies();
await this.eventStore.store({ await this.eventStore.store({
type: DROP_STRATEGIES, type: DROP_STRATEGIES,
createdBy: userName, createdBy: userName,

View File

@ -37,4 +37,5 @@ export interface IStrategyStore extends Store<IStrategy, string> {
deprecateStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>; deprecateStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>;
reactivateStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>; reactivateStrategy({ name }: Pick<IStrategy, 'name'>): Promise<void>;
importStrategy(data: IMinimalStrategy): Promise<void>; importStrategy(data: IMinimalStrategy): Promise<void>;
dropCustomStrategies(): Promise<void>;
} }

View File

@ -64,10 +64,6 @@ export default class FakeStrategiesStore implements IStrategyStore {
destroy(): void {} destroy(): void {}
async dropStrategies(): Promise<void> {
return this.deleteAll();
}
async exists(key: string): Promise<boolean> { async exists(key: string): Promise<boolean> {
return this.strategies.some((s) => s.name === key && !s.deprecated); return this.strategies.some((s) => s.name === key && !s.deprecated);
} }
@ -119,4 +115,8 @@ export default class FakeStrategiesStore implements IStrategyStore {
await this.delete(update.name); await this.delete(update.name);
return this.createStrategy(update); return this.createStrategy(update);
} }
async dropCustomStrategies(): Promise<void> {
return this.deleteAll();
}
} }