datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
Or perhaps:
url = "file:./dev.db"
What you will want to do is to match that url with the destination of your volume mount, either directly (as a file://// URL) or indirectly via whatever environment variable is defined in that file.
Setup/migration of data on volumes will need to be done on the deploy machine, prior to startup. There are a number of ways to do this; perhaps the easiest is to add “npm run setup &&” to the beginning of the “start” script in your “package.json”. This presumes that setup is something that can be run both against an empty database and an existing database.
It looks like docker-start runs setup followed by start. In your Dockerfile, do you have any lines that start with CMD or ENTRYPOINT? What do they contain?
Here is the error messages after I ran with above.
Error: Prisma session table does not exist. This could happen for a few reasons, see https://github.com/Shopify/shopify-app-js/tree/main/packages/shopify-app-session-storage-prisma#troubleshooting for more information
2024-03-13T20:47:14.526 app[e286003ad26986] sjc [info] at /app/node_modules/@shopify/shopify-app-session-storage-prisma/build/cjs/prisma.js:21:13
2024-03-13T20:47:14.920 app[e286003ad26986] sjc [info] INFO Main child exited normally with code: 1
2024-03-13T20:47:14.920 app[e286003ad26986] sjc [info] INFO Starting clean up.
2024-03-13T20:47:14.920 app[e286003ad26986] sjc [info] INFO Umounting /dev/vdb from /data
2024-03-13T20:47:14.922 app[e286003ad26986] sjc [info] WARN hallpass exited, pid: 315, status: signal: 15 (SIGTERM)