fix(runtime): run migrations before app startup
This commit is contained in:
@@ -47,10 +47,11 @@ openssl rand -base64 32
|
||||
Üretilen secret'ı `.env.local` içindeki `BETTER_AUTH_SECRET` alanına koyun, ardından:
|
||||
|
||||
```bash
|
||||
pnpm db:migrate
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
`pnpm dev` ve `pnpm start`, Next.js başlamadan önce bekleyen SQLite migration'larını otomatik ve idempotent olarak uygular. Migration'ı uygulamadan bağımsız çalıştırmak için `pnpm db:migrate` kullanılabilir.
|
||||
|
||||
`http://localhost:3000/register` adresinden ilk owner hesabını oluşturun. İlk başarılı kurulumdan sonra public kayıt atomik olarak kapanır.
|
||||
|
||||
## Environment sözleşmesi
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"predev": "node scripts/migrate.mjs",
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"prestart": "node scripts/migrate.mjs",
|
||||
"start": "next start",
|
||||
"lint": "eslint .",
|
||||
"typecheck": "tsc --noEmit",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { readFileSync } from "node:fs";
|
||||
import Database from "better-sqlite3";
|
||||
import { ensureDataLayout } from "./lib/data-dir.mjs";
|
||||
import { runMigrations } from "./migrate.mjs";
|
||||
@@ -24,6 +25,20 @@ const requiredIndexes = [
|
||||
|
||||
async function main() {
|
||||
const paths = ensureDataLayout();
|
||||
const packageJson = JSON.parse(
|
||||
readFileSync(new URL("../package.json", import.meta.url), "utf8"),
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
packageJson.scripts?.predev,
|
||||
"node scripts/migrate.mjs",
|
||||
"pnpm dev must apply migrations before starting Next.js",
|
||||
);
|
||||
assert.equal(
|
||||
packageJson.scripts?.prestart,
|
||||
"node scripts/migrate.mjs",
|
||||
"pnpm start must apply migrations before starting Next.js",
|
||||
);
|
||||
|
||||
runMigrations(paths.databasePath);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user