Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLI: add database flag; improve systemd db check #17993

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

naltatis
Copy link
Member

@naltatis naltatis commented Jan 1, 2025

fixes #17939

  • ✨ add --database flag: evcc --database /tmp/evcc.db
  • 💽 use service database (/var/lib/evcc/evcc.db) if it exists and no explicit db is set
  • 💬 add sudo hint if service database is not writable
  • 🧹 removed token specific template checks -> always warn

TODO:

  • test on raspberry using current docs

@naltatis naltatis added enhancement New feature or request needs documentation Triggers issue creation in evcc-io/docs labels Jan 1, 2025
@naltatis naltatis marked this pull request as ready for review January 1, 2025 11:37
@naltatis naltatis requested a review from andig January 1, 2025 11:37
@andig
Copy link
Member

andig commented Jan 1, 2025

use service database (/var/lib/evcc/evcc.db) if it exists and no explicit db is set

M.E. ist das unerwartet oder zumindest nicht Unix-like. Warum sollte ich als Anwender die Service-DB nutzen wenn ich eine User-lokale Installation habe?

@naltatis
Copy link
Member Author

naltatis commented Jan 1, 2025

Weil es die maximale Ausnahme ist, dass evcc in einem Multi-User-Umgebung (mehrere Instanzen) genutzt wird. Das ist ja weiter möglich, man muss dann halt explizit den Pfad angeben oder nicht auch noch evcc als systemd laufen haben.
Hast du einen anderen Vorschlag?

@andig
Copy link
Member

andig commented Jan 1, 2025

Solange es gleichberechtigte User- und Systeminstallationen gibt wäre es jedenfalls falsch, einfach die andere/falsche DB zu nehmen.

EVCC_DB_DSN=foo sudo xyz

ist auch nicht komplizierter als

sudo xyz --db-dsn foo

@naltatis
Copy link
Member Author

naltatis commented Jan 1, 2025

... wäre es jedenfalls falsch, einfach die andere/falsche DB zu nehmen.

Wir nehmen nicht einfach eine andere DB. Wir benutzen die auf systemebene vorhandene DB, die durch die Installation als Systemdienst (hat ja der Nutzer selbst entlang der Anleitung gemacht) erzeugt wurde.
Möchte man eine Installation, wo es ein evcc pro Nutzer gibt ist das ja weiterhin möglich.

Was wäre denn dein alternativer Vorschlag? Das jetzige Verhalten, wo wir einfach "still" eine weitere Datenbank anlegen führt ja regelmäßig zu Verwirrung.

ist auch nicht komplizierter als

Sehe ich in der Tat komplett anders. Das eine ist mir via Help und CLI Docs zugänglich. Für das andere muss ich den ENV + YAML Merge Mechanismus von Viper verstehen. Bei der config-Datei machen wir das doch genau so.

@andig
Copy link
Member

andig commented Jan 1, 2025

Wir nehmen nicht einfach eine andere DB. Wir benutzen die auf systemebene vorhandene DB, die durch die Installation als Systemdienst (hat ja der Nutzer selbst entlang der Anleitung gemacht) erzeugt wurde.
Möchte man eine Installation, wo es ein evcc pro Nutzer gibt ist das ja weiterhin möglich.

Wenn ich evcc als Nutzer starte dann ist auch diese DB zu verwenden, es sei denn ich überstimme das. Genauso wie der Serviceuser die Service-DB nehmen muss. "Keine explizite DB" für den non-Service user ist die user DB, nicht die Service-DB.

Das jetzige Verhalten, wo wir einfach "still" eine weitere Datenbank anlegen führt ja regelmäßig zu Verwirrung.

M.E. ist das UNIX-Standard. Das mag verwirrend sein, entspricht aber den gängigen Konventionen. Stillschweigend die Konventionen zu übergehen ist keine gute Lösung.

@github-actions github-actions bot added the stale Outdated and ready to close label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs documentation Triggers issue creation in evcc-io/docs stale Outdated and ready to close
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Passwort kann nur sehr umständlich zurückgesetzt werden
2 participants