@@ -20,7 +20,6 @@ import {
2020 pgdatabase ,
2121 pghost ,
2222 pguser ,
23- data ,
2423} from "@cocalc/backend/data" ;
2524import { trimLogFileSize } from "@cocalc/backend/logger" ;
2625import port from "@cocalc/backend/port" ;
@@ -50,15 +49,14 @@ import { stripe_sync } from "@cocalc/server/stripe/sync";
5049import { callback2 , retry_until_success } from "@cocalc/util/async-utils" ;
5150import { set_agent_endpoint } from "./health-checks" ;
5251import { getLogger } from "./logger" ;
53- import initDatabase from "./servers/database" ;
52+ import initDatabase , { getDatabase } from "./servers/database" ;
5453import initExpressApp from "./servers/express-app" ;
5554
5655import initHttpRedirect from "./servers/http-redirect" ;
5756
5857import { addErrorListeners } from "@cocalc/server/metrics/error-listener" ;
5958import * as MetricsRecorder from "@cocalc/server/metrics/metrics-recorder" ;
6059import { migrateBookmarksToConat } from "./migrate-bookmarks" ;
61- import { PostgreSQL } from "@cocalc/database/postgres" ;
6260
6361// Logger tagged with 'hub' for this file.
6462const logger = getLogger ( "hub" ) ;
@@ -69,15 +67,6 @@ export { program };
6967
7068const REGISTER_INTERVAL_S = 20 ;
7169
72- let database : PostgreSQL | undefined = undefined ;
73-
74- function getDatabase ( ) : PostgreSQL {
75- if ( database == null ) {
76- throw new Error ( "database not initialized yet" ) ;
77- }
78- return database ;
79- }
80-
8170async function reset_password ( email_address : string ) : Promise < void > {
8271 try {
8372 await callback2 ( getDatabase ( ) . reset_password , { email_address } ) ;
@@ -256,6 +245,8 @@ async function startServer(): Promise<void> {
256245 key : program . httpsKey ,
257246 } ) ;
258247
248+ const database = getDatabase ( ) ;
249+
259250 // The express app create via initExpressApp above **assumes** that init_passport is done
260251 // or complains a lot. This is obviously not really necessary, but we leave it for now.
261252 await callback2 ( init_passport , {
@@ -453,7 +444,7 @@ async function main(): Promise<void> {
453444 try {
454445 // Everything we do here requires the database to be initialized. Once
455446 // initDatabase returns, database is the initialized singleton.
456- database = initDatabase ( ) ;
447+ const database = initDatabase ( ) ;
457448 database . _concurrent_warn = program . dbConcurrentWarn ;
458449
459450 if ( program . passwd ) {
0 commit comments