(core) Fix snapshot migrations

Summary:
Migrations were failing in snapshots due to the sandbox no longer
being started in snapshots. We now start up an instance of the
sandbox whenever there are migrations to run, and immediately shut
it down on completion.

Test Plan: Server test.

Reviewers: paulfitz

Reviewed By: paulfitz

Subscribers: dsagal

Differential Revision: https://phab.getgrist.com/D3898
This commit is contained in:
George Gevoian
2023-05-23 15:03:50 -04:00
parent 3f3a0d3aa1
commit d5b8240c07
3 changed files with 115 additions and 24 deletions

View File

@@ -1,15 +1,21 @@
import {ISandbox} from 'app/server/lib/ISandbox';
export class UnavailableSandboxMethodError extends Error {
constructor(message: string) {
super(message);
}
}
export class NullSandbox implements ISandbox {
public async shutdown(): Promise<unknown> {
return undefined;
throw new UnavailableSandboxMethodError('shutdown is not available');
}
public async pyCall(_funcName: string, ..._varArgs: unknown[]) {
return undefined;
throw new UnavailableSandboxMethodError('pyCall is not available');
}
public async reportMemoryUsage() {
return undefined;
throw new UnavailableSandboxMethodError('reportMemoryUsage is not available');
}
}