The short answer
SQLite keeps its whole database in a file next to your app. On Antideploy, the disk that file lands on is temporary: it is wiped whenever the app restarts, redeploys or scales to zero. Nothing errors, and the data is simply gone. Move to Postgres. Antideploy creates one beside your app, and it survives every deploy.
How to tell
-
A
.dbor.sqlitefile, orbetter-sqlite3orsqlite3in your code. Antideploy flags SQLite before it builds, because the app deploys fine, reports healthy and loses data. -
Your data is back to the starting state after a deploy. Users, rows or settings reset.
How to fix it
-
Ask your agent to switch to Postgres
Say: "Replace SQLite with Postgres." Your agent creates the database, sets
DATABASE_URLand changes the code. Antideploy can create the database for you, but the code has to be changed to use it. -
Move any existing data
Export the rows you want to keep from the SQLite file, and import them into Postgres.
-
Deploy
The database belongs to the application and every deploy reuses it. Only the container's disk is replaced.