Skip to content

[ExcaliDash] Update fails on PostgreSQL installations because Prisma provider remains SQLite #16793

Description

@dmgv

✅ Have you read and understood the above guidelines?

yes

🔎 Did you run the script with verbose mode enabled?

Yes, verbose mode was enabled and the output is included below

📜 What is the name of the script you are using?

ExcaliDash

📂 What was the exact command used to execute the script?

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-apps.sh)"

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Debian 13

🧱 Is this Proxmox host running arm64?

No

📈 Which Proxmox version are you on?

pve-manager/9.2.11/f6997e698c7933ea (running kernel: 7.0.14-12-pve)

📝 Provide a clear and concise description of the issue.

Updating an ExcaliDash LXC installed using the community-script fails during the Prisma build/migration step with:

Error validating datasource db: the URL must start with the protocol file:.

The initial ExcaliDash installation is configured to use PostgreSQL. The problem appears after the updater downloads a clean copy of the latest ExcaliDash release. The current upstream backend/prisma/schema.prisma contains:

datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}

The ExcaliDash installation script handles both possible Prisma provider formats:

sed -i '/datasource db {/,/}/ s/provider = env("[^"]")/provider = "postgresql"/' prisma/schema.prisma
sed -i '/datasource db {/,/}/ s/provider = "[^"]
"/provider = "postgresql"/' prisma/schema.prisma

However, the update script only handles the env(...) format:

sed -i '/datasource db {/,/}/ s/provider = env("[^"]*")/provider = "'"${DATABASE_PROVIDER:-sqlite}"'"/' prisma/schema.prisma

Because the current upstream schema uses:

provider = "sqlite"

rather than:

provider = env("...")

the sed expression does not match anything. The schema therefore remains configured for SQLite while DATABASE_URL still contains the PostgreSQL connection URL.

Prisma then interprets the datasource as SQLite and expects a file: URL, resulting in:

Error validating datasource db: the URL must start with the protocol file:.

I was able to complete the update successfully by manually changing:
provider = "sqlite" to provider = "postgresql"

🔄 Steps to reproduce the issue.

Update Excalidash from 0.5.1 → 0.6.0

❌ Paste the full error output (if available).

find: ‘/opt/excalidash/frontend/node_modules/dlv’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/argparse’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/@HumanFS’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/safe-buffer’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/es-object-atoms’: No such file or directory
find: ‘/opt/excalidash/frontend/public’: No such file or directory
✔️ Deployed: excalidash (0.6.0)
✔️ Configured Database Provider
✔️ Rebuilt Application
✖️ in line 61: exit code 1 (General error / Operation not permitted): while executing command npx prisma migrate deploy

--- Last 20 lines of log ---
[2026-08-26 08:44:16] [OK] Rebuilt Application
[2026-08-26 08:44:16] [INFO] Running Migrations
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database

Error: Prisma schema validation - (get-config wasm)
Error code: P1012
error: Error validating datasource db: the URL must start with the protocol file:.
--> prisma/schema.prisma:9
|
8 | provider = "sqlite"
9 | url = env("DATABASE_URL")
|

Validation Error Count: 1
[Context: getConfig]

Prisma CLI Version : 5.22.0
[2026-08-26 08:44:18] [ERROR] in line 61: exit code 1 (General error / Operation not permitted): while executing command npx prisma migrate deploy

✖️Update failed for container 108 (exit code: 1)

🖼️ Additional context (optional).

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions