diff --git a/.gitignore b/.gitignore index 637eb3b9c..fc8e46928 100644 --- a/.gitignore +++ b/.gitignore @@ -60,6 +60,7 @@ public/locales/* #database sqlite.db database/*.sqlite +WILL_BE_OVERWRITTEN.sqlite # IDE .idea/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index a53350274..7e3f52553 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ COPY .next/standalone ./ COPY .next/static ./.next/static COPY ./scripts/run.sh ./scripts/run.sh COPY ./drizzle ./drizzle +RUN mkdir database COPY ./src/migrate.ts ./src/migrate.ts # Install dependencies @@ -27,13 +28,13 @@ RUN apt-get update -y && apt-get install -y openssl RUN cp -r node_modules node_modules_cache RUN rm -rf node_modules RUN rm package.json -RUN yarn add typescript ts-node drizzle-orm@0.28.6 better-sqlite3@8.6.0 @types/better-sqlite3 +RUN yarn add typescript ts-node dotenv drizzle-orm@0.28.6 better-sqlite3@8.6.0 @types/better-sqlite3 # Expose the default application port EXPOSE $PORT ENV PORT=${PORT} -ENV DATABASE_URL "file:./db.sqlite" +ENV DATABASE_URL "file:./database/db.sqlite" ENV NEXTAUTH_URL "http://localhost:3000" ENV PORT 7575 ENV NEXTAUTH_SECRET NOT_IN_USE_BECAUSE_JWTS_ARE_UNUSED diff --git a/database/.gitkeep b/database/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/drizzle.config.ts b/drizzle.config.ts index e6aa45846..597818a55 100644 --- a/drizzle.config.ts +++ b/drizzle.config.ts @@ -1,6 +1,8 @@ import 'dotenv'; import { type Config } from 'drizzle-kit'; +console.log(process.env); + export default { schema: './src/server/db/schema.ts', driver: 'better-sqlite', diff --git a/src/migrate.ts b/src/migrate.ts index 3e60b28c3..5c4abeb88 100644 --- a/src/migrate.ts +++ b/src/migrate.ts @@ -1,10 +1,13 @@ // This file is used to migrate the database to the current version // It is run when the docker container starts import Database from 'better-sqlite3'; +import dotenv from 'dotenv'; import { drizzle } from 'drizzle-orm/better-sqlite3'; import { migrate } from 'drizzle-orm/better-sqlite3/migrator'; -const sqlite = new Database('sqlite.db'); +dotenv.config({ path: __dirname + '/../.env' }); + +const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', '')); const db = drizzle(sqlite); diff --git a/src/server/db/index.ts b/src/server/db/index.ts index 6d5b357ea..f8287d09a 100644 --- a/src/server/db/index.ts +++ b/src/server/db/index.ts @@ -1,8 +1,9 @@ import Database from 'better-sqlite3'; import { drizzle } from 'drizzle-orm/better-sqlite3'; +import { env } from '~/env'; import * as schema from './schema'; -const sqlite = new Database('sqlite.db'); +const sqlite = new Database(env.DATABASE_URL!.replace('file:', '')); export const db = drizzle(sqlite, { schema }); diff --git a/tsconfig.json b/tsconfig.json index 4795e3998..4fb9c134d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,5 +36,11 @@ ], "exclude": [ "node_modules" - ] + ], + "ts-node": { + "esm": true, + "compilerOptions": { + "module": "nodenext", + }, + }, }