Skip to content

Commit b0b48e5

Browse files
committed
feat: disable migrations flag
1 parent 3f2ffbc commit b0b48e5

File tree

6 files changed

+23
-4
lines changed

6 files changed

+23
-4
lines changed

apps/server/src/app.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@ async function bootstrap() {
7878
const config = await initConfig(flags)
7979

8080
try {
81-
await initDrizzle(logger, config, { isDatabaseDebugMode: flags.isDatabaseDebugMode })
81+
await initDrizzle(logger, config, {
82+
isDatabaseDebugMode: flags.isDatabaseDebugMode,
83+
disableMigrations: flags.disableMigrations,
84+
})
8285
logger.log('Database initialized successfully')
8386
}
8487
catch (error) {

packages/common/src/flags.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export interface RuntimeFlags {
1010

1111
isDebugMode: boolean
1212
isDatabaseDebugMode: boolean
13+
disableMigrations: boolean
1314

1415
dbProvider?: DatabaseType
1516
dbUrl?: string
@@ -38,6 +39,7 @@ export interface RuntimeFlags {
3839
const DEFAULT_FLAGS: RuntimeFlags = {
3940
logLevel: LoggerLevel.Verbose,
4041
logFormat: LoggerFormat.Pretty,
42+
disableMigrations: false,
4143

4244
isDebugMode: false,
4345
isDatabaseDebugMode: false,
@@ -103,6 +105,7 @@ export function parseEnvFlags(env: Record<string, string | undefined>): RuntimeF
103105
}
104106
}
105107

108+
result.disableMigrations = readBooleanEnv('DISABLE_MIGRATIONS', env)
106109
result.isDatabaseDebugMode = readBooleanEnv('DATABASE_DEBUG', env)
107110

108111
assignIfPresent(result, 'dbProvider', readEnvValue('DATABASE_TYPE', env))

packages/core/src/db/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export async function initDrizzle(
3232
dbPath?: string
3333
debuggerWebSocketUrl?: string
3434
isDatabaseDebugMode?: boolean
35+
disableMigrations?: boolean
3536
},
3637
) {
3738
logger.log('Initializing database...')
@@ -49,6 +50,7 @@ export async function initDrizzle(
4950
const { initPgDrizzle } = await import('./pg')
5051
dbInstance = await initPgDrizzle(logger, config, {
5152
isDatabaseDebugMode: options?.isDatabaseDebugMode,
53+
disableMigrations: options?.disableMigrations,
5254
})
5355
break
5456
}
@@ -58,12 +60,14 @@ export async function initDrizzle(
5860
const { initPgliteDrizzleInBrowser } = await import('./pglite.browser')
5961
dbInstance = await initPgliteDrizzleInBrowser(logger, {
6062
isDatabaseDebugMode: options?.isDatabaseDebugMode,
63+
disableMigrations: options?.disableMigrations,
6164
})
6265
}
6366
else {
6467
const { initPgliteDrizzleInNode } = await import('./pglite')
6568
dbInstance = await initPgliteDrizzleInNode(logger, config, options?.dbPath, {
6669
isDatabaseDebugMode: options?.isDatabaseDebugMode,
70+
disableMigrations: options?.disableMigrations,
6771
})
6872
}
6973
break

packages/core/src/db/pg.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export async function initPgDrizzle(
2727
config: Config,
2828
options: {
2929
isDatabaseDebugMode?: boolean
30+
disableMigrations?: boolean
3031
} = {},
3132
) {
3233
logger.log('Initializing postgres drizzle...')
@@ -50,7 +51,9 @@ export async function initPgDrizzle(
5051
logger.log('Database connection established successfully')
5152

5253
// Migrate database
53-
await applyMigrations(logger, db)
54+
if (!options.disableMigrations) {
55+
await applyMigrations(logger, db)
56+
}
5457
}
5558
catch (error) {
5659
logger.withError(error).error('Failed to connect to database')

packages/core/src/db/pglite.browser.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export async function initPgliteDrizzleInBrowser(
3131
options: {
3232
debuggerWebSocketUrl?: string
3333
isDatabaseDebugMode?: boolean
34+
disableMigrations?: boolean
3435
} = {},
3536
) {
3637
logger.log('Initializing pglite drizzle in browser...')
@@ -73,7 +74,9 @@ export async function initPgliteDrizzleInBrowser(
7374
logger.log('Vector extension enabled successfully')
7475

7576
// Migrate database
76-
await applyMigrations(logger, db)
77+
if (!options.disableMigrations) {
78+
await applyMigrations(logger, db)
79+
}
7780
}
7881
catch (error) {
7982
logger.withError(error).error('Failed to connect to database')

packages/core/src/db/pglite.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export async function initPgliteDrizzleInNode(
3232
dbPath?: string,
3333
options: {
3434
isDatabaseDebugMode?: boolean
35+
disableMigrations?: boolean
3536
} = {},
3637
) {
3738
logger.log('Initializing pglite drizzle...')
@@ -58,7 +59,9 @@ export async function initPgliteDrizzleInNode(
5859
logger.log('Vector extension enabled successfully')
5960

6061
// Migrate database
61-
await applyMigrations(logger, db)
62+
if (!options.disableMigrations) {
63+
await applyMigrations(logger, db)
64+
}
6265
}
6366
catch (error) {
6467
logger.withError(error).error('Failed to connect to database')

0 commit comments

Comments
 (0)