Performing Drizzle ORM migration in vitest results in permission errors
In a test i'm using Drizzle ORM to do migrations in vitest beforeAll, but it doesn't work like when I run a script from
which then calls this
but when running in a test file I get root cause error:
and then results in
"db:migrate": "tsx db/migrate.ts", //runs with no issues
"db:migrate": "tsx db/migrate.ts", //runs with no issues
import { migrate } from 'drizzle-orm/better-sqlite3/migrator'
import { db } from './db'
import { fileURLToPath } from 'url'
import { dirname, join } from 'path'
export const migrateWrapper = async () => {
await migrate(db, { migrationsFolder: migrationsPath }) // does the actual migration
}
import { migrate } from 'drizzle-orm/better-sqlite3/migrator'
import { db } from './db'
import { fileURLToPath } from 'url'
import { dirname, join } from 'path'
export const migrateWrapper = async () => {
await migrate(db, { migrationsFolder: migrationsPath }) // does the actual migration
}
// console.log('yearly-recurring-events.test.ts')
beforeAll(async () => {
await resetDatabase() //includes the migration call
await seedRecurringEvents()
})
// console.log('yearly-recurring-events.test.ts')
beforeAll(async () => {
await resetDatabase() //includes the migration call
await seedRecurringEvents()
})
Caused by: SqliteError: disk I/O error
❯ PreparedQuery.run node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/src/better-sqlite3/session.ts:103:20
❯ BetterSQLiteSession.run node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/src/sqlite-core/session.ts:140:67
❯ SQLiteSyncDialect.migrate node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/src/sqlite-core/dialect.ts:721:11
.
.
Caused by: SqliteError: disk I/O error
❯ PreparedQuery.run node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/src/better-sqlite3/session.ts:103:20
❯ BetterSQLiteSession.run node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/src/sqlite-core/session.ts:140:67
❯ SQLiteSyncDialect.migrate node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/src/sqlite-core/dialect.ts:721:11
.
.
Migrating the database...
stderr | Module.migrateWrapper (/Users/nikos/WebstormProjects/drizzle-sqlite-recurring-events/db/migrateUtil.ts:19:13)
Failed to migrate the database: DrizzleError: Failed to run the query '
CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (
id SERIAL PRIMARY KEY,
hash text NOT NULL,
created_at numeric
)
'
Migrating the database...
stderr | Module.migrateWrapper (/Users/nikos/WebstormProjects/drizzle-sqlite-recurring-events/db/migrateUtil.ts:19:13)
Failed to migrate the database: DrizzleError: Failed to run the query '
CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (
id SERIAL PRIMARY KEY,
hash text NOT NULL,
created_at numeric
)
'
0 Replies