MaxLeiter / Drift

Drift is a self-hostable Gist and paste service. Built with Next.js 13 and React Server Components.
https://drift.lol
MIT License
1.36k stars 60 forks source link

Build failed with empty database #152

Open CDN18 opened 1 year ago

CDN18 commented 1 year ago

Describe the bug I'm trying to perform a fresh install on the refactor branch. However pnpm build results in an error saying that The tablepublic.postsdoes not exist in the current database.

To Reproduce Steps to reproduce the behavior:

  1. checkout the refactor branch, initialize an empty database, fill in .env and install dependencies
  2. pnpm build
  3. See error

Expected behavior The build exits successfully.

Stacktrace

PrismaClientKnownRequestError: 
Invalid `prisma.post.findMany()` invocation:

The table `public.posts` does not exist in the current database.
    at zr.handleRequestError (/var/www/drift/node_modules/.pnpm/@prisma+client@5.0.0_prisma@5.0.0/node_modules/@prisma/client/runtime/library.js:122:8308)
    at zr.handleAndLogRequestError (/var/www/drift/node_modules/.pnpm/@prisma+client@5.0.0_prisma@5.0.0/node_modules/@prisma/client/runtime/library.js:122:7697)
    at zr.request (/var/www/drift/node_modules/.pnpm/@prisma+client@5.0.0_prisma@5.0.0/node_modules/@prisma/client/runtime/library.js:122:7307)
    at async getAllPosts (/var/www/drift/.next/server/chunks/1364.js:174:19)
    at async Object.generateStaticParams (/var/www/drift/.next/server/app/pages/[fileId]/[fileTitle]/page.js:482:19)
    at async buildParams (/var/www/drift/node_modules/.pnpm/next@13.4.11-canary.1_@babel+core@7.21.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/build/utils.js:917:36)
    at async /var/www/drift/node_modules/.pnpm/next@13.4.11-canary.1_@babel+core@7.21.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/build/utils.js:934:33
    at async /var/www/drift/node_modules/.pnpm/next@13.4.11-canary.1_@babel+core@7.21.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/build/utils.js:1067:117
    at async Span.traceAsyncFn (/var/www/drift/node_modules/.pnpm/next@13.4.11-canary.1_@babel+core@7.21.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/trace/trace.js:103:20) {
  code: 'P2021',
  clientVersion: '5.0.0',
  meta: { table: 'public.posts' }
}

> Build error occurred
Error: Failed to collect page data for /pages/[fileId]/[fileTitle]
    at /var/www/drift/node_modules/.pnpm/next@13.4.11-canary.1_@babel+core@7.21.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/build/utils.js:1156:15 {
  type: 'Error'
}
- info Collecting page data . ELIFECYCLE  Command failed with exit code 1.
MaxLeiter commented 1 year ago

Thanks for the report, I need to update the instructions. In the meantime you can use pnpm prisma db push to generate and push the DB to your remote.

CDN18 commented 1 year ago

Thanks for your help, my instance can build and run without problem now.

If you want to update the instructions part, perhaps the running with pm2 section also needs to be updated. I got the following error while executing pm2 start pnpm --name drift --interpreter bash -- start, but I can use pm2 run "pnpm start" --name drift without problem.

1|Drift   | /home/node/v18.16.0/bin/pnpm: line 2: `require('./lib/corepack.cjs').runMain(['pnpm', ...process.argv.slice(2)]);'
1|Drift   | /home/node/v18.16.0/bin/pnpm: line 2: syntax error near unexpected token `'./lib/corepack.cjs''
CDN18 commented 1 year ago

~Regarding build and setup, I also have a question about the GitHub OAuth configuration:~

~How should I set up the callback URL? I've currently set it as https://<my_drift_instance>, but I'm experiencing errors with registration and login.~

Edit: It turns out that I set HTTP://<my_drift_instance> as NEXTAUTH_URL instead of HTTPS://<my_drift_instance>, which is the real url.