Run database migration before running any business logic
This commit is contained in:
parent
32aa7aaff1
commit
6c0dc34dd6
@ -78,6 +78,24 @@ class Server {
|
|||||||
async startServer(worker = false): Promise<void> {
|
async startServer(worker = false): Promise<void> {
|
||||||
logger.notice(`Starting Mempool Server${worker ? ' (worker)' : ''}... (${backendInfo.getShortCommitHash()})`);
|
logger.notice(`Starting Mempool Server${worker ? ' (worker)' : ''}... (${backendInfo.getShortCommitHash()})`);
|
||||||
|
|
||||||
|
if (config.DATABASE.ENABLED) {
|
||||||
|
await DB.checkDbConnection();
|
||||||
|
try {
|
||||||
|
if (process.env.npm_config_reindex !== undefined) { // Re-index requests
|
||||||
|
const tables = process.env.npm_config_reindex.split(',');
|
||||||
|
logger.warn(`Indexed data for "${process.env.npm_config_reindex}" tables will be erased in 5 seconds (using '--reindex')`);
|
||||||
|
await Common.sleep$(5000);
|
||||||
|
await databaseMigration.$truncateIndexedData(tables);
|
||||||
|
}
|
||||||
|
await databaseMigration.$initializeOrMigrateDatabase();
|
||||||
|
if (Common.indexingEnabled()) {
|
||||||
|
await indexer.$resetHashratesIndexingState();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(e instanceof Error ? e.message : 'Error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.app
|
this.app
|
||||||
.use((req: Request, res: Response, next: NextFunction) => {
|
.use((req: Request, res: Response, next: NextFunction) => {
|
||||||
res.setHeader('Access-Control-Allow-Origin', '*');
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
||||||
@ -99,24 +117,6 @@ class Server {
|
|||||||
diskCache.loadMempoolCache();
|
diskCache.loadMempoolCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.DATABASE.ENABLED) {
|
|
||||||
await DB.checkDbConnection();
|
|
||||||
try {
|
|
||||||
if (process.env.npm_config_reindex !== undefined) { // Re-index requests
|
|
||||||
const tables = process.env.npm_config_reindex.split(',');
|
|
||||||
logger.warn(`Indexed data for "${process.env.npm_config_reindex}" tables will be erased in 5 seconds (using '--reindex')`);
|
|
||||||
await Common.sleep$(5000);
|
|
||||||
await databaseMigration.$truncateIndexedData(tables);
|
|
||||||
}
|
|
||||||
await databaseMigration.$initializeOrMigrateDatabase();
|
|
||||||
if (Common.indexingEnabled()) {
|
|
||||||
await indexer.$resetHashratesIndexingState();
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(e instanceof Error ? e.message : 'Error');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config.STATISTICS.ENABLED && config.DATABASE.ENABLED && cluster.isPrimary) {
|
if (config.STATISTICS.ENABLED && config.DATABASE.ENABLED && cluster.isPrimary) {
|
||||||
statistics.startStatistics();
|
statistics.startStatistics();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user