Hallo alle zusammen,
im Moment arbeite ich an einer neuen Version von Part-DB.
Dies wird ein komplettes Rewrite von Part-DB auf Basis eines modernen
PHP Frameworks (Symfony 4). Da sie daher inkompatibel zur alten Version
ist (ein Upgrade der Datenbank ist aber problemlos möglich), ist es
jetzt Version 1.0 (um sich an Semantic Versioning zu orientieren).
Die Version befindet sich im Moment in Entwicklung, es fehlen aber noch
viele Funktionen aus der alten Version, weswegen man die Version noch
nicht als Produktivversion benutzen sollte.
Dieser Thread soll dazu dienen über die neue Version zu diskutieren, um
den bisherigen Thread nicht mit Diskussionen zu füllen, die für Nutzer
der alten Version nicht relevant sind.
Der Quellcode (und eine rudimentäre Installationsanleitung) der neuen
Version findet sich hier: https://github.com/Part-DB/Part-DB-symfony
Eine Demo (immer der aktuelle Entwicklungsstand) findet sich hier:
https://part-db.herokuapp.com/de/
Es gibt aber bereits einige Funktionen, die mit den alten 0.x Versionen
nicht möglich waren, unteranderem:
* Mehrere Lagerorte für ein Bauteil möglich
* Unterstützung mehrere Währungen
* Möglichkeit "Bauteile" Mengen in z.B. Längen oder Volumen angeben zu
können (hilfreich für z.B. Kabel)
* Tagsystem für Bauteile
* Zusätzliche Bauteilefelder wie Gewicht, Produktionsstatus, MPN
* Verbesserung der Bauteiletabellen (man kann jetzt dynamisch auswählen
welche Spalten angezeigt werden sollen), Verbesserte Filterung
und noch viele andere kleine Verbesserungen.
Eine Liste von Features die geplant sind, findet sich hier:
https://docs.google.com/document/d/1FH9brIEUSZBDE20qEjtjz-GUfOe3hXH01GbZpXxuVG0/edit
Wenn ihr Wünsche habt, könnt ihr das entweder ergänzen oder hier
schreiben.
Hallo Jan,
an erster Stelle ein dickes Danke für deine Weiterentwicklungen!
Besteht die Möglichkeit das Dateiformat webp bei den Anhängen bzw
Bildern zu unterstützen?
Grüße
Gerald
Hallo Jan,
Ich habe mal probiert das ganze bei mir auf dem Webserver zu
installieren. Bei mir "Ploppt" aber nach der Installation bei Part-DB
der Fehler "Site not found!" (404) auf, bei Show Response ist aber alles
leer. Wenn ich dass Fenster wegdrücke (OK) dann läuft es eine Weile, bis
es wieder kommt.
Beim Versuch des Login's (wie sind die Standart-Logindaten, ich musste
bisher nirgendwo welche angeben?) bekomme ich die Fehlermeldung "Die
Authentifikation konnte wegen eines Systemproblems nicht bearbeitet
werden." Ich vermute das liegt an der noch leeren Datenbank.. Aber wo
lege ich den ersten Nutzer an ?
Und bei dem Versuch die Datenbank "Anzulegen" oder "Updaten" mittels
"php bin/console doctrine:migrations:migrate " bekomme ich auch immer
wieder Fehler.. Kannst du mir helfen was ich falsch mache?
moritzs schrieb:> Hallo Jan,>> Ich habe mal probiert das ganze bei mir auf dem Webserver zu> installieren. Bei mir "Ploppt" aber nach der Installation bei Part-DB> der Fehler "Site not found!" (404) auf, bei Show Response ist aber alles> leer. Wenn ich dass Fenster wegdrücke (OK) dann läuft es eine Weile, bis> es wieder kommt.>> Beim Versuch des Login's (wie sind die Standart-Logindaten, ich musste> bisher nirgendwo welche angeben?) bekomme ich die Fehlermeldung "Die> Authentifikation konnte wegen eines Systemproblems nicht bearbeitet> werden." Ich vermute das liegt an der noch leeren Datenbank.. Aber wo> lege ich den ersten Nutzer an ?>> Und bei dem Versuch die Datenbank "Anzulegen" oder "Updaten" mittels> "php bin/console doctrine:migrations:migrate " bekomme ich auch immer> wieder Fehler.. Kannst du mir helfen was ich falsch mache?
Die Benutzer werden beim Anlegen der Datenbank erstellt (mit admin und
Password: admin). Ohne eine korrekt angelegte Datenbank, kommen diese
Fehlerfenster im Browser (sie sind im produktion modus nicht so
aussagekräftig).
Die eingentliche Fehlerursache liegt also irgendwo bei der
Datenbankmigration:
Was für eine MySQL Version benutzt du? MySQL oder MariaDB?
Möglicherweise hilft es die Datenbankversion explizit anzugeben: Du
fügst eine Zeile DB_VERSION=5.7 in deine .env.local hinzu (wenn du z.B.
MySQL 5.7 benutzt, oder DB_VERSION=mariadb-10.3.15 wenn du MariaDB in
der Version benutzt)
Wenn du die Migration nochmal ausführst solltest du vorher die Datenbank
manuell leeren, sonst können da Fehler passieren, die aus den vorherigen
fehlgeschlagenen Migrationen entstehen.
Hallo,
Jan B. schrieb:> Was für eine MySQL Version benutzt du? MySQL oder MariaDB?>> Möglicherweise hilft es die Datenbankversion explizit anzugeben: Du> fügst eine Zeile DB_VERSION=5.7 in deine .env.local hinzu (wenn du z.B.> MySQL 5.7 benutzt, oder DB_VERSION=mariadb-10.3.15 wenn du MariaDB in> der Version benutzt)
Ich nutze MySQL "Server version: 5.7.27-0ubuntu0.18.04.1 (Ubuntu)" auf
einem Ubuntu-Server.
In der .env.local habe ich "DB_VERSION=5.7" und "DB_VERSION=5.7.27"
probiert. Anschließen die sämtliche Tabellen in der Datenbank nochmal
gelöscht. Fehler bleibt aber dann leider der selbe. In der nun
angelegten Tabelle "groups" das Feld "not_selectable" hat keinen
Standart Wert. Darauf hin bricht das doctrine ab. Ich vermute folgich
darauf hin habe ich auch keinen Zugang zu Part-DB, da bei mir irgendwas
mit der Installation nicht hinhaut.
Hast du noch einen Tipp?
moritzs schrieb:> Hast du noch einen Tipp?
Scheinbar benutzt MySQL ab Version 5.7 den sogenannten Strict Mode, wenn
nicht explizit Default Werte für die Spalten definiert sind. Bei MariaDB
gibt es das nicht, deswegen ist mir das nicht aufgefallen.
Ich habe die Migrationen mal so angepasst, dass er das ignoriert, das
ist zwar nicht die perfekte Lösung, es sollte aber funktionieren. (Das
ist die aktuelle Version auf GitHub).
Ich werde mal schauen ob ich es hinbekomme, dass auf Travis auch die
Migrationen gegen verschiedene Versionen von MariaDB und MySQL getestet
werden, dann würde sowas direkt auffallen.
Moin,
alles klar. Das erstellen der Datenbank klappt nun einwandfrei. Es sind
nun auch Einträge in der Tabelle "users". Allerdings bekomme ich nun
immer bei jeder Aktion auf der Seite einen Fehler "Error getting data
from Server! Status Code: 500". Kann mich auch nicht Anmelden, wegen des
Fehlers.
Moritz S. schrieb:> Moin,>> alles klar. Das erstellen der Datenbank klappt nun einwandfrei. Es sind> nun auch Einträge in der Tabelle "users". Allerdings bekomme ich nun> immer bei jeder Aktion auf der Seite einen Fehler "Error getting data> from Server! Status Code: 500". Kann mich auch nicht Anmelden, wegen des> Fehlers.
Führ mal ein composer install (ohne --no-dev) aus und
ändere in der .env.local die Zeile APP_ENV=prod zu APP_ENV=dev.
Dann befindet er sich im Entwicklermodus und zeigt detaillierte
Fehlermeldungen an.
Ansonsten sollte unter var/log Logdateien zu finden sein, wo der Fehler
genauer erläutert wird.
Moin,
habe nun alles getan was du gesagt hast. Leider keine weiteren
Erkenntnisse. Durch den dev-Modus erscheint ja von Symphony unten eine
Leiste. Dort sind die einzigen Fehlermeldungen die Auftauchen, je nach
aufgerufener Seite, nur Fehler bei "Translation"
Die Weißen Fehlermeldungs-PopUps bleiben aber Leer, hier steht kein
weiterer Hinweis drin.
composer install habe ich auch gemacht. Jetzt fiel mir diesmal auf, am
Anfang steht hier man soll composer nicht als root/Super User ausführen.
Liegt hier das Problem ? Ich habs bisher immer als root gemacht. Der
Webserver läuft aber mit www-data. Wie führe ich den Befehl sonst aus ?
(Webserver übrigens Apache2->Falls Interessant). In den Logs die ich auf
der Seite von Symphony finde steht ja nichts besonderes zu meinem Fehler
drin.
Welche Log-Datei soll ich denn hier überprüfen in /var/log?
Moritz S. schrieb:> Welche Log-Datei soll ich denn hier überprüfen in /var/log?
Am besten die die deiner eingestellten Umgebung entspricht. Also
entweder dev.log oder prod.log.
Wenn du darin nix findest, kannst du mir die Logdatei auch schicken, ich
schau dann ob ich was finde...
Moin,
also im Log-File konnte ich jetzt nichts Fehlertechnisches erkennen. Ich
habe dir wegen des Log-Files eine PN geschrieben. Mir ist nun zusätzlich
Aufgefallen, dass ich nirgendwo einen Punkt zum Anlegen einer
Kategorie/Bauteil/etc. habe. Ich habe mal versucht aus der Demo von dir
die Links zu kopieren, und komme dann auch zum Beispiel zu der Seite wo
ich eine Kategorie anlegen kann. Wenn ich diese Speichere, zeigt Part-DB
sie allerings nicht an. Inder Datenbank wird sie aber erstellt.
Moritz S. schrieb:> Moin,>> also im Log-File konnte ich jetzt nichts Fehlertechnisches erkennen. Ich> habe dir wegen des Log-Files eine PN geschrieben. Mir ist nun zusätzlich> Aufgefallen, dass ich nirgendwo einen Punkt zum Anlegen einer> Kategorie/Bauteil/etc. habe. Ich habe mal versucht aus der Demo von dir> die Links zu kopieren, und komme dann auch zum Beispiel zu der Seite wo> ich eine Kategorie anlegen kann. Wenn ich diese Speichere, zeigt Part-DB> sie allerings nicht an. Inder Datenbank wird sie aber erstellt.
Deine Probleme kommen vermutlich daher, dass bei dir das URL Rewriting
(daher dass für die URL /de/test vom Server index.php/de/test aufgerufen
wird) nicht korrekt funktioniert:
Ich habe mal eine neue Version auf Github hochgeladen, mit der es jetzt
auch funktionieren sollte wenn kein URL Rewriting verfügbar ist (wenn es
auf Anhieb nicht klappt, musst du evtl. die Zeile
"NO_URL_REWRITE_AVAILABLE=true" zu deiner .env.local hinzufügen.
Du solltest aber vielleicht versuchen das URL Rewriting korrekt zum
funktionieren zu bekommen, denn dann sind die URL deutlich schöner. Das
rührt meistens davon her, dass mod_rewrite nicht aktiviert ist, oder
dass die globale Apache Config das überschreiben von Optionen verhindert
(siehe https://stackoverflow.com/a/21658877)
Hallo Jan,
vielen Dank. Nachdem ich das URL-Rewriting zum laufen bekommen habe,
läuft Part-DB auch super. Keine Probleme bisher gefunden. Die neue
Version von Github habe ich jetzt noch nicht ausprobiert. Es lag nur an
der Konfig vom Web-Server.
Ich bedanke mich vielmals für deine Hilfe!
Hallo Jan,
wäre es möglich beim Hochlanden von Dateianhänge mehrere vom gleichen
Type(zb Bilder oder Datenblätter) gleichzeitig auszuwählen und dann auch
gleichzeitig hochzuladen?
Grüße
Gerald
Gerald *. schrieb:> wäre es möglich beim Hochlanden von Dateianhänge mehrere vom gleichen> Type(zb Bilder oder Datenblätter) gleichzeitig auszuwählen und dann auch> gleichzeitig hochzuladen?
Wie genau meinst du das? Also dass man im Datei wählen Dialog mehrere
Dateien auswählen kann und diese dann automatisch in mehrer Anhänge
geladen werden? Das lässt sich vermutlich mit Javascript ganz gut lösen,
Mal schauen ob ich das umgesetzt bekomme...
Mal was zum aktuellen Entwicklungsstand: Man kann jetzt quasi jedem
Element (also auch Kategorien, Lagerorte), etc. Dateianhänge zuordnen.
Bei Bauteilen werden die passenden Bilder als eine Galerie angezeigt.
Weiterhin werden jetzt von hochgeladen Bildern Thumbnails erstellt, die
für Vorschauzwecke benutzt werden. Insbesondere bei den Bauteiletabellen
spart das viel Datenvolumen ein. Weiterhin ist es mittlerweile (wie in
der alten Version) möglich das er Links auf Dateien herunterlädt und
lokal ablegt anstatt einfach den Link zu speichern (Das muss aber aus
Sicherheitsgründen in config/services.yaml aktiviert werden)
Außerdem habe ich die Textformatierung in Kommentarfeldern und
Bauteilebeschreibungen von BBCode auf Markdown umgestellt (es gibt ein
Konvertertool was bisherige Datenbestände umwandelt). Markdown bietet
deutlich mehr Formatierungsmöglichkeiten, wie Tabellen oder verschiedene
Überschriften. Da Markdown such jegliches HTML erlaubt, kann man jetzt
alles benutzen was HTML so hergibt (siehe z.b. <kbd> Markierungen im
Banner auf der Startseite). Insbesondere kann man jetzt auch Text höher
oder Tiefer stellen, was ganz nützlich sein könnte. Wenn gewünscht,
könnte sogar (Latex-) Formeln erlauben, die dann schön gerendert
werden...
Grüße
Jan B.
Ach ja und da ich weiß das manche ganz gerne benutzen: Man kann jetzt
auch wieder verschiedene Themes auswählen (siehe https://bootswatch.com/
für eine Übersicht was es alles gibt). Die Funktion ist in der Demo
deaktiviert (damit man das nicht für den Demo-Account verstellen kann),
also müsst ihr das entweder selber testen, oder ich Stelle wenn
gewünscht die Tage Mal ein paar Screenshots hier rein)
Hallo Jan,
Jan B. schrieb:> Gerald *. schrieb:>> wäre es möglich beim Hochlanden von Dateianhänge mehrere vom gleichen>> Type(zb Bilder oder Datenblätter) gleichzeitig auszuwählen und dann auch>> gleichzeitig hochzuladen?>> Wie genau meinst du das? Also dass man im Datei wählen Dialog mehrere> Dateien auswählen kann und diese dann automatisch in mehrer Anhänge> geladen werden? Das lässt sich vermutlich mit Javascript ganz gut lösen,> Mal schauen ob ich das umgesetzt bekomme...
genauso würde es meinem Wunsch entsprechen :)
Grüße
Gerald
Hallo,
sagt mal Leute bin ich nur zu doof, oder bekommt das von euch hier auch
keiner zum Laufen ?
Ich habe alles installiert wie beschrieben. Die hier geschriebenen
Hinweise beachtet. Leider bekomme ich immer wieder eine Fehlermeldung
wie im Bild. Das nervt. Ich kann auch nirgendwo Nutzer anlegen, keine
Bauteile oder Kategorien anlegen. Was stimmt denn hier nicht?
Bitte helft mir !
Hi Jan,
erstmal herzlichen Dank. Wir nutzen (die "alte") Part-DB seit ein paar
Wochen und sind begeistert, schnell und tut das was es soll.
Hätte aber ne Frage, vllt. hab ich es auch nur übersehen: Wie kann man
einem Bauteil mehrere Lagerorte (und Bestandszahlen) zuweisen? Bisher
haben wir uns so beholfen den Artikel mehrfach anzulegen, gibt es da was
eleganteres?
markus schrieb:> Hallo,>> sagt mal Leute bin ich nur zu doof, oder bekommt das von euch hier auch> keiner zum Laufen ?>> Ich habe alles installiert wie beschrieben. Die hier geschriebenen> Hinweise beachtet. Leider bekomme ich immer wieder eine Fehlermeldung> wie im Bild. Das nervt. Ich kann auch nirgendwo Nutzer anlegen, keine> Bauteile oder Kategorien anlegen. Was stimmt denn hier nicht?>> Bitte helft mir !
In deinem Installationsordner müsste es unter var/log eine Datei
prod.log geben. Schaumal ob da irgendwas von Error steht (am besten wäre
es wenn du die Datei Mal hier reinschickst, dann schaue ich mir das Mal
an).
Beim Datenbank erstellen mit `php bin/console
doctrine:migrations:migrate` gab es keine Fehlermeldung? Wenn die
Datenbank nicht korrekt erstellt wurde, dann könnte dieser Fehler evtl.
auftreten.
Moin Moin,
ich hab PartDB zum laufen bekommen.
Nun wollte ich gerne die alte Datenbank importieren? Wie gehe ich vor?
Wenn ich in der .env.local die Datenbankdaten zur alten Datenbank
ändere, und dann versuche `php bin/console doctrine:migrations:migrate`
auszuführen bekomme ich immer folgendes:
1
In AbstractMySQLDriver.php line 38:
2
3
An exception occurred while executing 'RENAME TABLE `attachement_types` TO
4
`attachment_types`;':
5
6
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'attachment_
7
types' already exists
8
9
10
In PDOConnection.php line 90:
11
12
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'attachment_
13
types' already exists
14
15
16
In PDOConnection.php line 88:
17
18
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'attachment_
19
types' already exists
mache ich hier was falsch? Die neue Version funktioniert sonst soweit,
die alte Version läuft auch einwandfrei..
Friedhelm schrieb:> Moin Moin,>> ich hab PartDB zum laufen bekommen.>> Nun wollte ich gerne die alte Datenbank importieren? Wie gehe ich vor?>> Wenn ich in der .env.local die Datenbankdaten zur alten Datenbank> ändere, und dann versuche `php bin/console doctrine:migrations:migrate`> auszuführen bekomme ich immer folgendes:>>> mache ich hier was falsch? Die neue Version funktioniert sonst soweit,> die alte Version läuft auch einwandfrei..
Hast du schon vorher mal probiert die Datenbank zu migrieren (was
fehlgeschlagen ist)? Wenn ja solltest du die Datenbank auf den
ursprünglichen Stand zurürckzusetzen (aus einem Backup) und die
Migration neu probieren und schauen was dann für eine Fehlermeldung
auftritt. Die aktuelle klingt stark danach, als hätte er schon teilweise
etwas migriert (Tabellen umbenannt), was aber fehlgeschlagen ist, und
jetzt scheitert er daran dass die Datenbank nicht den ursprünglichen
Zustand hat.
Hallo Jan,
nutze jetzt seit einiger Zeit die neue PartDB-Version erfolgreich. Ich
bin bisher echt zufrieden mit den Fortschritten und Aufwand den du
betrieben hast!
Zwei fragen habe ich jetzt aber noch:
"Baugruppen": Ist die Abteilung schon fertig ?
Ich kann zwar Baugruppen erstellen, über die Sidebar die Baugruppen aber
nicht auswählen, es passiert nichts wenn ich auf Baugruppe "XYZ123"
tippe.
Stellenweise habe ich dass Problem dass Angelegte Bauteile nicht mehr
aufgerufen werden können: Leider kann ich hierzu noch nicht mehr sagen.
Bisher war es immer gleich nach dem Anlegen der Bauteile, ein Aufrufen
dieser endete dann mit Error 500. Bei mir half bisher nur Löschen und
neu anlegen.
Sonst echt super dass ganze.
moritzs schrieb:> "Baugruppen": Ist die Abteilung schon fertig ?> Ich kann zwar Baugruppen erstellen, über die Sidebar die Baugruppen aber> nicht auswählen, es passiert nichts wenn ich auf Baugruppe "XYZ123"> tippe.
Die Baugruppen Funktion existiert im Moment noch nicht. Es wird sie aber
später in überarbeiteter Funktion geben (vermutlich als "Projekte"), das
kann aber noch eine Weile dauern, momentan haben die grundlegenden
Bauteile Funktionen höhere Priorität.
moritzs schrieb:> Stellenweise habe ich dass Problem dass Angelegte Bauteile nicht mehr> aufgerufen werden können: Leider kann ich hierzu noch nicht mehr sagen.> Bisher war es immer gleich nach dem Anlegen der Bauteile, ein Aufrufen> dieser endete dann mit Error 500.
Da wäre es gut, wenn du mir die Logs aus var/log/prod.log schicken
könntest. Dann kann ich anhand der Fehlermeldungen versuchen das zu
beheben.
Hallo Jan,
das Logfile schicke ich dir gleich per E-Mail. Ich habe versucht dem
Problem mal selber auf die schliche zu kommen, schaffe es aber nicht.
Bisher hat alles super geklappt. Seit gestern Abend (Ich habe diverse
Bauteile vollständig mit Lieferanten usw. angelegt, die ersten 96
Laufen, ab dann nicht mehr) ist das Problem ich kann ein Bauteil
anlegen. Allgemein, Hersteller, Erweiterte Optionen, Lagerbestände,
Dateianhänge. Speichern. Bauteil bleibt Aufrufbar und Bearbeitbar!
Ergänze ich nun die Lieferanten Daten von z.B. Reichelt und speicher
dies, dann bekomme ich beim Aufrufen Error 500. Lösche ich aus der
Tabelle "orderdetails" den Eintrag zu meinem Bauteil wieder, ist das
Bauteil auch wieder aufrufbar. Es liegt auch nicht am Inhalt
(Bestellnummer/Link) denn diese können auch Leer sein usw. aber der
Fehler bleibt der selbe. Das komische ist, das die letzten 96 Bauteile
funktionieren, mit den selben Eigenschaften.
So nun genug - Logfile kommt per E-Mail.
Bis dahin!
Hallo Jan,
Halo moritzs
bei einigen Bauteilen auf https://part-db.herokuapp.com/de/ erhalte ich
auch die 500er FM, zb beim Bauteil BC547 mit der ID 799
Schönen Abend noch
Freund schrieb:> Hallo Jan,> Halo moritzs>> bei einigen Bauteilen auf https://part-db.herokuapp.com/de/ erhalte ich> auch die 500er FM, zb beim Bauteil BC547 mit der ID 799>> Schönen Abend noch
Sollte jetzt funktionieren. War das gleiche Problem wie bei moritzs.
Hast du das Problem behoben ? In der Demo geht es ja schon.
Dann muss ich wahrscheinlich ein Update von Github machen. Wie stelle
ich dass am besten an, worauf muss ich achtend das Datenblätter usw
erhalten bleiben ? Reicht es wenn ich den Ordner einfach überschreibe?
moritzs schrieb:> Hast du das Problem behoben ? In der Demo geht es ja schon.>> Dann muss ich wahrscheinlich ein Update von Github machen. Wie stelle> ich dass am besten an, worauf muss ich achtend das Datenblätter usw> erhalten bleiben ? Reicht es wenn ich den Ordner einfach überschreibe?
Hab es durch ein neuanlegen der Bauteile hinbekommen. Danke für deine
Hilfe!
freundfreund schrieb:> Ist es möglich bei der Suchfunktion die Entertaste zu integrieren ? Das> wäre echt nice diggah!
Ich fände es ja auch toll, habe so noch gar nicht drüber nachgedacht.
Aber man muss beachten das Jan wohl noch an Part-DB Arbeitet! Ganz
Part-DB ist "voll nice diggah!".
Jan B. schrieb:> Wenn ihr Wünsche habt, könnt ihr das entweder ergänzen oder hier> schreiben.
Ich schreib mal hier:
Ich hätte gerne über den Baugruppen noch eine Kategorie "Gerät".
Bsp: Gerät X hat Baugruppe(n) Platine (Platine + Bauteile), Baugruppe
Gehäuse (Ober-/Unterteil, Schrauben,...), dazu noch einzelne Bauteile
wie Lichtleiter oder Schalter/Potis die nicht direkt auf der Platine
sitzen.
Dann kann ich beim Bestücken und Gehäuse zusammenbauen nur die dazu
passenden Bauteile anzeigen lassen, bzw. auch komplett als
Gerät/Projekt.
Alexander S. schrieb:> Ich hätte gerne über den Baugruppen noch eine Kategorie "Gerät".>> Bsp: Gerät X hat Baugruppe(n) Platine (Platine + Bauteile), Baugruppe> Gehäuse (Ober-/Unterteil, Schrauben,...), dazu noch einzelne Bauteile> wie Lichtleiter oder Schalter/Potis die nicht direkt auf der Platine> sitzen.>> Dann kann ich beim Bestücken und Gehäuse zusammenbauen nur die dazu> passenden Bauteile anzeigen lassen, bzw. auch komplett als> Gerät/Projekt.
Klingt gut.
Im Prinzip gibt es ja jetzt schon so eine hierarchische Struktur der
Baugruppen, mit der man diese Beziehung abbilden könnte.
Mal schauen wie ich das umsetzte...
Wär auch nicht verkehrt wenn in den Suchergebnissen die Spalte
"Dateianhänge" mit angezeigt wird, dafür Lieferanten/Bestellnr.
entfällt. Vllt. könnte man das als Optionen in der Config machen. Ist
ein bisschen umständlich wenn man zb. eine Controller-Familie sucht
("ATTiny") und für die Datenblätter/AppNotes in die jeweilige
Detailansicht rein muß.
Alexander S. schrieb:> Wär auch nicht verkehrt wenn in den Suchergebnissen die Spalte> "Dateianhänge" mit angezeigt wird, dafür Lieferanten/Bestellnr.> entfällt. Vllt. könnte man das als Optionen in der Config machen. Ist> ein bisschen umständlich wenn man zb. eine Controller-Familie sucht> ("ATTiny") und für die Datenblätter/AppNotes in die jeweilige> Detailansicht rein muß.
Im Prinzip sollte das schon in den alten Part-DB Versionen möglich sein.
Man muss eigentlich nur bei der inc/config_defaults.php diese
(https://github.com/Part-DB/Part-DB/blob/2e31837594d3b669dca976c80197fee6af2d7f25/inc/config_defaults.php#L260)
Zeile bearbeiten und da 'attachements' [sic!] hinzufügen.
Bei der Part-DB 1.0 Version habe ich jetzt auch mal eine
Datenblatt-Spalte hinzugefügt, da kann man einfach auf das Zahnradsymbol
über der Tabelle klicken und die Spalte (und viele andere) einblenden.
Mittelfristig sollte es auch möglich sein, dass ein Nutzer festlegen
kann, welche Spalten er direkt sehen möchte (und er diese nicht erst
einblenden muss).
Hallo,
Ich habe bereits eine PartDB Version 1.0 bei mir laufen. Wie kann ich
hier ein Update machen, um neue Funktionen bzw. Fehlerbehebungen zu
nutzen, ohne meine Daten zu verlieren ?
Das ganze läuft auf einem Ubuntu Server mit Apache.
Wilhelm schrieb:> Hallo,>> Ich habe bereits eine PartDB Version 1.0 bei mir laufen. Wie kann ich> hier ein Update machen, um neue Funktionen bzw. Fehlerbehebungen zu> nutzen, ohne meine Daten zu verlieren ?>> Das ganze läuft auf einem Ubuntu Server mit Apache.
Wenn es mit git heruntergeladen, sollte ein "git pull" reichen.
Ansonsten dürfte es am saubersten sein, die neue Version in ein neues
Verzeichnis zu kopieren, und .env.local, die Ordner "public/media" und
"media/" zu kopieren (wenn sie existieren).
Das sind eigentlich alle Orte wo irgendwelche Daten drin liegen, der
Rest liegt in der Datenbank (evtl. Musst du noch config/banner.md
kopieren, wenn du etwas am Start Banner geändert hast).
Danach muss du dann einfach Verfahren wie bei einer Neuinstallation,
daher composer und yarn ausführen und eine Datenbankmigration anstoßen.
In Part-DB 1.0 gibt es ja jetzt eine Import/Export-Funktion für die
Datenstrukturen.
Dazu ist meine Idee, eine Art Standardbibliothek von Herstellern,
Footprints, etc. zu erstellen, sodass ein neuer Benutzer nicht alles
selbst von Grund auf neu erstellen muss, sondern einfach nur eine JSON
Datei mit häufig gebräuchlichen Footprints, etc. importieren kann, und
danach nur noch Dinge hinzufügen oder individualisieren muss.
Gleichzeitig könnte man dann gleich auch möglichst vollständige Daten
bereitstellen (z.B. Anschrift und Websites von Herstellern/Lieferanten,
evtl. Logos).
Dazu meine Frage: Wie habt ihr bei euch die Footprints, Kategorien,
Hersteller strukturiert oder habt ihr Ideen wie man das möglichst
logisch und erweiterbar (aber auch nicht zu speziell) aufbauen kann?
Außerdem: Denkt ihr, es wäre sinnvoll den Footprints ein Feld zu geben,
wo man den Footprints die Bezeichnungen der Footprints verschiedener
CAD-Software hinterlegen kann? (Da würde sich eine JSON Spalte anbieten,
da kann man dann beliebige Menge an CAD-Software, Referenzen und evtl.
Extradaten hinterlegen).
Jan B. schrieb:> Wie habt ihr bei euch die Footprints, Kategorien, Hersteller> strukturiert
Grundsätzlich habe ich eine Baumstruktur. Ist noch nicht ganz fertig
aber brauchbar. Dabei habe ich das Schema der Bauteilekategorien
angewandt. Hauptkategorien, Unterkategorie, usw.
die Bauteilekategorien: wie Pollin/Reichelt Katalog
für Footprints: THT, SMD, outline
bei Herstellern: die 5 größten, die übernommenen, Zulieferer
Ich kann am Abend die entsprechenden Tabellen exportieren und posten.
Ich versuche gerade eine neue part-db Installation ans Laufen zu
bekommen:
1
> git remote show origin
2
* Remote-Repository origin
3
URL zum Abholen: https://github.com/Part-DB/Part-DB.git
4
...
5
> git branch
6
master
7
* stable-v0.5
Aber PHP schmeißt eine fatale Fehlermeldung:
1
PHP Fatal error: Uncaught Error: Class 'PartDB\\Database' not found in /home/bernd/public_html/Part-DB/inc/lib.start_session.php:286\nStack trace:\n#0 [internal function]: exception_handler(Object(Error))\n#1 {main}\n thrown in /home/bernd/public_html/Part-DB/inc/lib.start_session.php on line 286
> /home/bernd/public_html/Part-DB/inc/lib.start_session.php on line 286
6
>
>> Was mache ich falsch?
Das ist die "klassische" Version von Part-DB, daher ist die Frage in
diesem Thread besser aufgehoben
(Beitrag "Lagerverwaltung Part-DB V0.5.x").
Aber ich antworte trotzdem mal hier. Das sieht so aus als wäre kein
Autoloader vorhanden. Hast du "composer install (bzw. "php composer.phar
install") ausgeführt (oder die vendor.zip in dein Verzeichnis kopiert)?
Bernd schrieb:> Mit einem> git checkout master> bekomme ich die Enwicklungsversion?
Im master-Branch von Part-DB/Part-DB liegt die 0.6 Version, die aber
quasi keine neuen Funktionen im Vergleich zu 0.5 hat (und vermutlich
auch nicht erhalten wird).
Die in diesem Thread besprochene Version 1.0, an der ich gerade arbeite,
liegt in diesem Repository https://github.com/Part-DB/Part-DB-symfony
Da fehlen aber noch einige Funktionen, daher ist produktive Verwendung
dieser Version noch nicht wirklich empfohlen (da sollte man lieber die
Part-DB 0.5 benutzen).
Mir ist gerade etwas eingefallen, was sich für Part-DB 1.0 anbieten
würde.
Und zwar hat Part-DB 1.0 eine API auf die man mit externen Programmen
zugreifen kann?
Meine Überlegung wäre die folgende:
Wenn man ein Bauteil heraussucht, wäre es dann nicht schön, wenn man in
Part-DB 1.0 einen Button hätte, mit dem man ein Signal an eine
Elektronikhardware senden könnte, der dann am Lagerort dieses Bauteils
eine LED zum blinken oder leuchten bringt?
So könnte man seine Sachen sehr schnell finden, ohne lange suchen zu
müssen.
Natürlich müsste die Elektronikgeschichte jeder bei sich für sich selber
einrichten, aber Part-BD 1.0 bräuchte nur die Funktion die einem anderen
Programm, welches die Elektronik ansteuert, ein Signal gibt, damit
dieses weiß, welche LED es zum Leuchten bringen müsste.
Die einfachste Lösung wäre wohl eine verdeckte Tabelle von Bauteilen,
die sich Part-DB merkt und in der alle Bauteile drinstehen, deren LED am
Lagerort leuchten soll. Dann könnte man mit einem weiteren Programm per
API diese Tabelle einfach abfragen und den Rest, wie Ansteuerung der
Elektronik könnte dann jeder für sich selber machen wie er es halt
braucht.
Nano schrieb:> Und zwar hat Part-DB 1.0 eine API auf die man mit externen Programmen> zugreifen kann?
Also im Moment gibt es noch keine API, aber es ist eine geplant. Da
Part-DB jetzt Symfony benutzt, kann man mit API Platform relativ einfach
moderne REST und GraphQL APIs bauen. Ich will mit den APIs aber noch
warten bis Part-DB 1.0 etwas mehr Feature-komplett ist, weil die APIs
sollten auch halbwegs stabil sein.
Nano schrieb:> Natürlich müsste die Elektronikgeschichte jeder bei sich für sich selber> einrichten, aber Part-BD 1.0 bräuchte nur die Funktion die einem anderen> Programm, welches die Elektronik ansteuert, ein Signal gibt, damit> dieses weiß, welche LED es zum Leuchten bringen müsste.
Ich vermute das ließe sich am besten über ein HTTP Callback lösen. Daher
ich kann eine Option einbauen, wo man eine URL angeben kann, die
aufgerufen wird, wenn der zugehörige Button auf der Bauteileseite
gedrückt wird. Die URL enthält die Bauteile ID und der dahinterstehende
Server kann dann eine Aktion auslösen (z.B. über die Part-DB API die
Bauteile infos abfragen und dann eine LED leuchten lassen).
Jan B. schrieb:> Ich vermute das ließe sich am besten über ein HTTP Callback lösen. Daher> ich kann eine Option einbauen, wo man eine URL angeben kann, die> aufgerufen wird, wenn der zugehörige Button auf der Bauteileseite> gedrückt wird. Die URL enthält die Bauteile ID und der dahinterstehende> Server kann dann eine Aktion auslösen (z.B. über die Part-DB API die> Bauteile infos abfragen und dann eine LED leuchten lassen).
Klingt gut, das geht schon in die richtige Richtung. Ich würde
allerdings keine Bauteil ID mitgeben, sondern nur ein Signal, damit die
andere Software, welche die LEDs ansteuert, sich die Liste mit den
Bauteilen per API abrufen kann.
Denn es können ja mehrere Bauteile sein, also müssen mehrere LEDs an
verschiedenen Orten leuchten und über eine Apiabfrage kann man besser
mehrere Informationen übergeben wie bspw. der Standort der
entsprechenden Bauteile.
Dann noch eine weitere Frage. Wie sieht es mit Benutzerrechten auf
Bauteilebene aus?
Z.B. könnte man auch teure Bauteile haben, z.B. teure ICs, die soll aber
nicht jeder, der Zugriff auf PartDB hat, abfragen können, sondern nur
der, der die dafür notwendige Sicherheitsstufe hat.
Oder man denke mal an eine Schreinerei im Bereich Möbelbau. Der Azubi
soll die Schraubensammlung abfragen können, aber nicht die Menge an
Blattgold im Tresor. Auf die soll nur der Schreinermeister zugreifen
dürfen, der Azubi soll aber nicht wissen, welche Menge sich im Tresor
befindet.
Ebenfalls wären Gruppenarbeiten möglich, bei dem man aber vielleicht nur
ein Teil der Bauteile der Gruppe zur Verfügung stellen möchte.
Ebenso wäre es denkbar, dass die Bauteile unterschiedlichen Personen
gehören und diese aber ein gemeinsames Projekt und eine gemeinsame
Bauteildatenbank verwalten.
Nano schrieb:> Wie sieht es mit Benutzerrechten auf Bauteilebene aus? Z.B. könnte man> auch teure Bauteile haben, z.B. teure ICs, die soll aber nicht jeder,> der Zugriff auf PartDB hat, abfragen können, sondern nur der, der die> dafür notwendige Sicherheitsstufe hat.
Also mit der neuen Architektur ist das prinzipiell machbar, da wird beim
Prüfen der Berechtigung (fast) immer auch das zu bearbeitende Objekt
übergeben, man müsste also nur den voter entsprechend anpassen.
ABER... Die ganzen Beziehungen für ACL (so heißt das was du vorschlägst)
in der DB zu speichern und die Bearbeitung dieser zu implementieren ist
relativ aufwendig.
Das wäre auf jeden Fall ein cooles feature, aber ich denke bei der
bisherigen Zielgruppe von Part-DB ist der Bedarf für so ein Feature eher
selten. Es steht daher eher hinten auf meiner Liste von Dingen die ich
umsetzen möchte, ich denke da gibt es im Moment wichtigere Dinge.
Beim stöbern entdeckt: https://partsbox.io/demo/parts/
Vielleicht kann man etwas vom Design, Struktur, Navigation etc.
abgucken.
- Die Navigation oben bzw. links finde ich sehr gelungen.
- Das Zahnrad oben rechts, Definition Darstellung der Spalten
- Spalte Type., die u.A. folgendes ermöglicht:
WLED Controller V1.1 Sub-assembly part, result of building a project.
Mister A. schrieb:> Beim stöbern entdeckt: https://partsbox.io/demo/parts/>> Vielleicht kann man etwas vom Design, Struktur, Navigation etc.> abgucken.
Kenne ich schon. Ich mir da z.B. die Einstellmöglichkeiten für die
Lagerorte abgeschaut.
Mister A. schrieb:> Die Navigation oben bzw. links finde ich sehr gelungen.
Ich wollte schon länger irgendwelche Schnellzugriffslinks oben in der
Navigationsleiste unterbringen, ich weiß aber noch nicht genau was. Da
in Part-DB das meiste hierarchisch in Baumstrukturen untergebracht ist,
ist es etwas schwierig das in der Navleiste unterzubringen.
Mister A. schrieb:> - Das Zahnrad oben rechts, Definition Darstellung der Spalten
Das gibt es in Part-DB auch. Über den Zahnrad Button kann man festlegen,
welche Spalten angezeigt werden sollen, und man kann die Spalten auch
verschieben (durch gedrückthalten).
Mister A. schrieb:> Spalte Type., die u.A. folgendes ermöglicht:> WLED Controller V1.1 Sub-assembly part, result of building a project.
Das hab ich geplant, aber dazu muss ich erstmal das ganze Projektsystem
implementieren.
Ich hab übrigens noch ein paar neue Dinge in Part-DB 1.0 eingebaut:
Es gibt jetzt die Möglichkeit Zwei-Faktor-Authentifizierung einzurichten
(mit einer App wie Google Authenticator und/oder einem U2F Gerät, wie
einem Yubikey). Man kann dass auch für Nutzer einer bestimmten Gruppe
erzwingen (z.B. könnte es sinnvoll sein, dass Adminstratoren mit ihren
weitgehenenden Rechten dies einrichten müssen, einem normalen Nutzer
dies aber der einfachhalt halber freigestellt ist).
Die aktuelle Part-DB Version dürfte jetzt am Handy wesentlich besser zu
bedienen sein.
Die Bäume mit Kategorien, Lagerorten, etc. werden jetzt gecached, was
die Performance verbessern sollte.
Kann bzw. darf man die v1 WIP schon an die produktive Datenbank lassen?
Ich bin noch mit der letzten stable unterwegs. Benutze PartDB täglich
und wirklich sehr gerne. An den Daten darf nichts kaputt gehen :)
Schönheitsfehler und fehlende Funktionen kann ich hinnehmen.
Mittlerweile ist PartDB zum zentralen Informationssystem geworden. Der
Datenbestand wächst täglich.
Meine 3 Haupteinsatzzwecke:
- suche nach einem vorhandenen Bauteil, welches verbaut werden kann.
Hier bin ich sehr stark an der Parametrisierung angewiesen. Die
einzelnen Parameter werden in der 2. Zeile kommagetrennt erfasst.
- suche nach SMD Markings, um ein Bauteil zu identifizieren. Die Codes
pflege ich hinter dem Namen (Mfr) kommasepariert als #xyz ein.
- suche nach Alternativen zu einem Bauteil. Hier mache ich mir die
strikte Eingabeform der Bezeichnungszeile zum Nutzen.
- die Projektverwaltung ist etwas mühsam. Hier mangelt es etwas an der
BOM txt/csv Anbindung.
- als Preisauskunftssystem bzw. Projektkostenaufstellung. Die
Bezugspreise pflege ich ebenso permanent ein.
- für Application examples. Schematiken werden als Anlagen zum Bauteil
drangehängt.
Im großen und ganzen bin ich nach ein-zwei Jahren Einsatz immer noch
zufrieden. Die Geschwindigkeit leidet immer noch nicht.
Ich würde mir nur etwas mehr Fokus auf die Filterung, Vergleich bzw.
Parametrisierung wünschen. Das Suchfeld als AND-Operator würde schon
helfen.
Jan, falls du am Datenbestand interessiert bist, melde dich.
An dieser Stelle kann ich mich nur wiederholt für das gelungen Teil
bedanken.
Jan B. schrieb:> im Moment arbeite ich an einer neuen Version von Part-DB.> Dies wird ein komplettes Rewrite von Part-DB auf Basis eines modernen> PHP Frameworks (Symfony 4). Da sie daher inkompatibel zur alten Version> ist (ein Upgrade der Datenbank ist aber problemlos möglich), ist es> jetzt Version 1.0 (um sich an Semantic Versioning zu orientieren).
Wow, die Testinstallation sieht schon richtig prima aus. Tolle Arbeit!
Mir sind aber auf die Schnelle drei Kleinigkeiten aufgefallen:
- in der Info-Ansicht eines Bauelements kann ich nicht sehen, ob es
dazu Dateianhänge gibt. Aber okay, ich habe jetzt leider auch keine
Bauelemente mit Anhang in der Demo gefunden.
- Warum die Beschränkung auf MySQL bzw. MariaDB? Symfony enthält doch
mit Doctrine einen starken OR-Mapper für verschiedene DBMS.
- Da Du ohnehin schon ein Dockerfile mitlieferst, könnte zusätzlich
eine docker-compose.yml erstellt werden, das Container mit MySQL,
MariaDB, oder -- wenn Du Doctrine nutzen würdest -- zB. auch ein
PostgreSQL enthält.
Ansonsten, wie gesagt: tolle Arbeit, vielen Dank und weiter so!
Jan B. schrieb:> Gerald *. schrieb:>> wäre es möglich beim Hochlanden von Dateianhänge mehrere vom gleichen>> Type(zb Bilder oder Datenblätter) gleichzeitig auszuwählen und dann auch>> gleichzeitig hochzuladen?>> Wie genau meinst du das? Also dass man im Datei wählen Dialog mehrere> Dateien auswählen kann und diese dann automatisch in mehrer Anhänge> geladen werden? Das lässt sich vermutlich mit Javascript ganz gut lösen,> Mal schauen ob ich das umgesetzt bekomme...
Das geht mit HTML5, das
Mister A. schrieb:> Kann bzw. darf man die v1 WIP schon an die produktive Datenbank lassen?>> Ich bin noch mit der letzten stable unterwegs. Benutze PartDB täglich> und wirklich sehr gerne. An den Daten darf nichts kaputt gehen :)> Schönheitsfehler und fehlende Funktionen kann ich hinnehmen
Eher nein. Ich versuche es zwar tunlichst zu vermeiden aber es könnte
sein, dass ich noch ein paar größere Änderungen an den bestehenden
Datenbankmigrationen durchführen muss, dann könntest du deine Datenbank
nicht mehr sinnvoll auf die endgültige Version updaten.
Außerdem fehlen teils noch ein paar elementare funktionen und das ganze
ist noch nicht wirklich getestet. Tendenziell sollte da zwar kein
Datenverlust auftreten, aber das ist alles noch nicht wirklich
ausgetestet.
Sheeva P. schrieb:> - in der Info-Ansicht eines Bauelements kann ich nicht sehen, ob es> dazu Dateianhänge gibt. Aber okay, ich habe jetzt leider auch keine> Bauelemente mit Anhang in der Demo gefunden.
Also wenn das Bauteil einen anhang hat, wird das angezeigt (siehe
https://part-db.herokuapp.com/en/part/873/info#attachments). Es sind
aber auf dem Server keine Dateien hinterlegt (wegen Urheberrecht) und
ich glaube heroku löscht die hochgeladenen immer beim deployen einer
neuen Version.
Sheeva P. schrieb:> Warum die Beschränkung auf MySQL bzw. MariaDB? Symfony enthält doch> mit Doctrine einen starken OR-Mapper für verschiedene DBMS.
Doctrine kann das, dass ist richtig, ich im Moment habe ich nur
Migrations für MySQL (die sind Platform abhängig) damit ich mir beim
Entwicklen nicht mehrfach arbeiten muss. Wenn die Datenbank halbwegs
stabil ist, baue ich eine Migration für andere Datenbanken ein
(vermutlich sind SQLite und vielleicht noch PostgreSQL am sinnvollsten).
Sheeva P. schrieb:> Da Du ohnehin schon ein Dockerfile mitlieferst, könnte zusätzlich> eine docker-compose.yml erstellt werden, das Container mit MySQL,> MariaDB, oder -- wenn Du Doctrine nutzen würdest -- zB. auch ein> PostgreSQL enthält.
Also die ganzen Sachen zu docker sind noch nicht richtig fertig (ich
weiß nichtmal ob das in der aktuellen Form überhaupt gebaut werden kann,
seit es PHP 7.4 gibt). Außerdem habe ich nicht wirklich viel Erfahrung
mit docker, da muss ich mich noch etwas zu einlesen...
Jan B. schrieb:> Sheeva P. schrieb:>> - in der Info-Ansicht eines Bauelements kann ich nicht sehen, ob es>> dazu Dateianhänge gibt. Aber okay, ich habe jetzt leider auch keine>> Bauelemente mit Anhang in der Demo gefunden.>> Also wenn das Bauteil einen anhang hat, wird das angezeigt (siehe> https://part-db.herokuapp.com/en/part/873/info#attachments). Es sind> aber auf dem Server keine Dateien hinterlegt (wegen Urheberrecht) und> ich glaube heroku löscht die hochgeladenen immer beim deployen einer> neuen Version.
Verzeih', aber das meine ich nicht: auf der Default-Seite
(https://part-db.herokuapp.com/en/part/873/info#part_lots) kann ich
nicht sehen, ob das Element Attachments hat, ebensowenig in der
Übersicht (https://part-db.herokuapp.com/en/category/129/parts). Anders
gesagt: um zu sehen, ob ein Bauteil ein Datenblatt oder einen anderen
Dateianhang hat, muß ich erst auf das Bauelement gehen und dann auf die
"Unterseite" Attachments.
> Sheeva P. schrieb:>> Warum die Beschränkung auf MySQL bzw. MariaDB? Symfony enthält doch>> mit Doctrine einen starken OR-Mapper für verschiedene DBMS.>> Doctrine kann das, dass ist richtig, ich im Moment habe ich nur> Migrations für MySQL (die sind Platform abhängig) damit ich mir beim> Entwicklen nicht mehrfach arbeiten muss. Wenn die Datenbank halbwegs> stabil ist, baue ich eine Migration für andere Datenbanken ein> (vermutlich sind SQLite und vielleicht noch PostgreSQL am sinnvollsten).
SQLite bei einer Webapp, die üblicherweise mit mehreren Threads und /
oder Prozessen arbeitet? Ich weiß nicht recht, was passiert wenn zwei
Mistfinken gleichzeitig auf die SQLite-Datei schreiben, müßte man dazu
nicht noch ein separates Locking um jeden Schreibzugriff implementieren?
> Sheeva P. schrieb:>> Da Du ohnehin schon ein Dockerfile mitlieferst, könnte zusätzlich>> eine docker-compose.yml erstellt werden, das Container mit MySQL,>> MariaDB, oder -- wenn Du Doctrine nutzen würdest -- zB. auch ein>> PostgreSQL enthält.>> Also die ganzen Sachen zu docker sind noch nicht richtig fertig (ich> weiß nichtmal ob das in der aktuellen Form überhaupt gebaut werden kann,> seit es PHP 7.4 gibt). Außerdem habe ich nicht wirklich viel Erfahrung> mit docker, da muss ich mich noch etwas zu einlesen...
Wenn Du Fragen hast oder Unterstützung suchst, helfe ich gerne. ;-)
Jan B. schrieb:> Sheeva P. schrieb:>> Da Du ohnehin schon ein Dockerfile mitlieferst, könnte zusätzlich>> eine docker-compose.yml erstellt werden, das Container mit MySQL,>> MariaDB, oder -- wenn Du Doctrine nutzen würdest -- zB. auch ein>> PostgreSQL enthält.>> Also die ganzen Sachen zu docker sind noch nicht richtig fertig (ich> weiß nichtmal ob das in der aktuellen Form überhaupt gebaut werden kann,> seit es PHP 7.4 gibt).
Aktuell schlägt das bei 'composer install -a --no-dev' fehl, das hatte
ich über die Feiertage mal ausprobiert.
1
Executing script cache:clear [KO]
2
[KO] Script cache:clear returned with error code 1
3
!! In AbstractMySQLDriver.php line 93:
4
!! An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
5
!! In PDOConnection.php line 31:
6
!! SQLSTATE[HY000] [2002] Connection refused
7
!! In PDOConnection.php line 27:
8
!! SQLSTATE[HY000] [2002] Connection refused
Das hängt vermutlich damit zusammen dass ich hier gar keine MySQL
Datenbank aufgesetzt hab, aber eigentlich sollte man die im Buildprozess
doch gar nicht benötigen? Andernfalls müsste man natürlich die
Zugangsdaten auch noch in den Buildkontext von Docker bekommen, was eher
unüblich wäre. So ganz steige ich bei Composer (bzw. modernem PHP
allgemein) allerdings nicht durch.
>> Sheeva P. schrieb:> SQLite bei einer Webapp, die üblicherweise mit mehreren Threads und /> oder Prozessen arbeitet? Ich weiß nicht recht, was passiert wenn zwei> Mistfinken gleichzeitig auf die SQLite-Datei schreiben, müßte man dazu> nicht noch ein separates Locking um jeden Schreibzugriff implementieren?
SQLite hat damit an sich kein Problem, da ist passendes Locking schon
integriert. Schreibzugriffe müssen sich dann um ein einzelnes globales
Lock streiten. In diesem Fall sollte das vermutlich aber gar nicht mal
so kritisch sein, da wir ja eher wenige Schreibzugriffe haben.
Alternativ gabs da noch eine Art Schreibcache, den hab ich bisher
allerdings nie verwendet.
Sheeva P. schrieb:> Anders gesagt: um zu sehen, ob ein Bauteil ein Datenblatt oder einen> anderen Dateianhang hat, muß ich erst auf das Bauelement gehen und dann> auf die "Unterseite" Attachments.
Ach so meinst du das. Das ist natürlich ein berechtigter Einwand. Ich
denke es ist eine gute Idee die Zahl der Attachments, Lagerorte, etc.
als Zahl direkt im Tab anzuzeigen. Dann sieht man direkt ob es sich
lohnt den Tab aufzurufen.
Sheeva P. schrieb:> SQLite bei einer Webapp, die üblicherweise mit mehreren Threads und /> oder Prozessen arbeitet? Ich weiß nicht recht, was passiert wenn zwei> Mistfinken gleichzeitig auf die SQLite-Datei schreiben, müßte man dazu> nicht noch ein separates Locking um jeden Schreibzugriff implementieren?
Das sollte SQLite hinbekommen, bzw. ist scheinbar praktisch kein
Problem, selbst Anwendungen wie Nextcloud können SQLite nutzen, und da
werden deutlich mehr Datenbankoperation durchgeführt als in Part-DB.
Der SQLite Modus wäre aber auch eher so für einen Ein-Nutzer-Betrieb
gedacht, so dass man es einfach auf einem lokalen Rechner installieren
kann (und auch portabel auf einem USB Stick mitnehmen kann). Wenn man
Part-DB zentral auf einem Server für viele Benutzer installiert, dann
sollte alleine schon wegen der besseren Performance MySQL benutzt
werden.
Ntldr -. schrieb:> Das hängt vermutlich damit zusammen dass ich hier gar keine MySQL> Datenbank aufgesetzt hab, aber eigentlich sollte man die im Buildprozess> doch gar nicht benötigen?
Die Fehlermeldung stammt nicht von Composer selbst, sondern von Part-DB
bzw. Symfony, dass versucht den Container bzw. irgendwelche Cachedateien
aufzubauen.
Vermutlich macht er da irgendwie eine Datenbankabfrage, die ohne
Datenbank eben fehlschlägt.
Ich schaue mir das Mal an, das sollte behebar sein.
(Ich glaube das hängt damit zusammen, dass keine explizite MySQL Version
spezifiziert wurde und er nun versucht sie selber abzufragen, was ohne
Server fehlschlägt).
Hi,
Wo kann ich den Pfad für die .css einstellen ?
Ich hab PArt-DB in einem Unterorder "installiert" die .css werden aber
vom root vom Webserver geladen, wo sie natürlich nicht liegen.
Gruß JackFrost
Bastian W. schrieb:> Hi,>> Wo kann ich den Pfad für die .css einstellen ?> Ich hab PArt-DB in einem Unterorder "installiert" die .css werden aber> vom root vom Webserver geladen, wo sie natürlich nicht liegen.>> Gruß JackFrost
Ich hab das mal in der Installationsanleitung in der README ergänzt:
https://github.com/Part-DB/Part-DB-symfony/blob/master/README.md
(Schritt 5).
Du musst die Zeilen '.setPublicPath('/part-db/build')' und
'.setManifestKeyPrefix('build/')' in die webpack.config.js hinzufügen
(bzw. jetzt nur noch auskommentieren) und /part-db durch deinen
Unterordner ersetzen.
Ich versuche vor dem stable Release noch einen besseren Weg zu finden,
bei dem man die Datei nicht bearbeiten muss.
Jan B. schrieb:> Bastian W. schrieb:> Hi,> Wo kann ich den Pfad für die .css einstellen ?> Ich hab PArt-DB in einem Unterorder "installiert" die .css werden aber> vom root vom Webserver geladen, wo sie natürlich nicht liegen.> Gruß JackFrost>> Ich hab das mal in der Installationsanleitung in der README ergänzt:> https://github.com/Part-DB/Part-DB-symfony/blob/master/README.md> (Schritt 5).>> Du musst die Zeilen '.setPublicPath('/part-db/build')' und> '.setManifestKeyPrefix('build/')' in die webpack.config.js hinzufügen> (bzw. jetzt nur noch auskommentieren) und /part-db durch deinen> Unterordner ersetzen.>> Ich versuche vor dem stable Release noch einen besseren Weg zu finden,> bei dem man die Datei nicht bearbeiten muss.
Hello,
how to install that on a Windows 2012 Server?
Any manual?
Jan B. schrieb:> Du musst die Zeilen '.setPublicPath('/part-db/build')' und> '.setManifestKeyPrefix('build/')' in die webpack.config.js hinzufügen> (bzw. jetzt nur noch auskommentieren) und /part-db durch deinen> Unterordner ersetzen.>> Ich versuche vor dem stable Release noch einen besseren Weg zu finden,> bei dem man die Datei nicht bearbeiten muss.
Zumindest im Docker-Umfeld würde sich da ein Reverse Proxy anbieten.
Wäre es möglich, eine Schritt-für-Schritt-Anleitung für Anfänger zu
erstellen?
Ich habe mir das Paket runtergeladen und würde damit gerne meine
Bauteile erfassen.
Aber irgendwie krieg ich das nicht gestartet :-(
Ich habe mich dazu entschlossen die Lizenz der neuen Part-DB Version von
GPL2+ zu AGPL3+ (GNU Affero General Public License v3.0 or later) zu
ändern.
Der Änderungen von Version 2 nach 3 sind größtenteils rein formell (Die
Lizenz orientiert sich weniger am amerikanischen Copyright Gesetzen und
ist mehr internationaler formuliert).
Interessant ist die Änderung von GPL nach AGPL: Die AGPL enthält die
gleichen Regeln wie die normale GPL, zusätzlich gibt es eine Klausel,
die sagt, dass auch beim reinen Hosten der Software, der Quelltext eine
bearbeiteten Version zur Verfügung gestellt werden muss.
Das heißt, sollte in Zukunft jemand Part-DB modifizieren/erweitern, etc.
und diese neue Version nur als Hostingservice anbieten (Software as a
Service), muss er trotzdem den Quelltext bereitstellen.
Bei der normalen GPL muss der Quelltext nur bereitgestellt werden, wenn
die modifizierte Software selbst verbreitet wird.
Die Free Software Foundation empfiehlt daher für Webanwendungen (wie
Part-DB) die Verwendung der AGPL und daher werden die zukünftigen
Part-DB-Versionen
unter AGPL stehen (genauso wie andere Webprojekte wie z.B.
nextcloud/owncloud).
Viele Grüße
Jan B.
Mal wieder ein Update zum Entwicklungsstand:
Die letzten Wochen habe ich etwas an der Verbesserung der Log und
Historie Funktion gearbeitet. Jedes Element hat jetzt einen Historie
Tab, wo sich der Bearbeitungsverlauf und Ähnliches eines Elements
anzeigen lässt (wenn der Nutzer die entsprechende Berechtigung hat).
Siehe z.B. https://part-db.herokuapp.com/de/part/878/info#history
Zusätzlich zu der Information wann und durch wen ein Bauteil bearbeitet
wurde, wird jetzt standardmäßig auch gespeichert, welches Feld eines
Bauteils geändert wurde (z.B. die Beschreibung). Weiterhin kann der
Benutzer beim Speichern einen Kommentar angeben (Pfeil neben Speichern
button), der im Log angezeigt wird, und in dem z.B. der Grund für eine
Änderung angegeben werden kann.
Wenn man die Option aktiviert, dann wird auch genau gespeichert was
geändert wurde (d.h. der Inhalt der Änderung). Wenn dies aktiv ist, dann
ist es möglich sich das Bauteil zu früheren Versionsständen anzuschauen
(https://part-db.herokuapp.com/en/part/878/info/1583618418) und
vergangene Änderungen sogar rückgängig zu machen.
Es gibt auch die Option, dass der Inhalt eines Elements beim Löschen
gespeichert wird, so ist es dann auch z.B. möglich gelöschte Elemente
wiederherzustellen.
Und noch ein kleines Update: Die Suchfunktion sollte jetzt deutlich
besser funktionieren und auch die gewählten Such Optionen werden
berücksichtigt.
Hallo Jan,
habe gerade mal deine neue Demo angeschaut und muss sagen, da hat sich
ja wirklich viel getan!
Manchmal hat man sogar den Eindruck, dass einen die vielen Optionen
glatt erschlagen ;-)
Viele Verbesserungen, durch das ganze Projekt hinweg. Man merkt
deutlich, dass es vieles im Hintergrund geändert hat.
Bitte weiter so!
Derzeit wage ich mir aber noch keinen Umstieg. Dazu scheint mir das
System noch zu sehr wip zu sein ;-)
Es gibt jetzt "richtige" vom Nutzer definierbare Parameter für Bauteile
(und für die anderen Datenstrukturen wie Footprints).
So kann man jetzt die Daten aus Datenblättern übertragen und in einer
strukturierten Form darstellen (siehe Anhang oder
https://part-db.herokuapp.com/de/part/2/info#specifications).
Prinzipiell sollte es so auch möglich sein, eine parametrische Suche
einzubauen, sodass man nach Bauteilen suchen kann die bestimmte
Eigenschaften haben (z.B. Transistoren die einen gewissen Mindeststrom
verkraften).
Später soll es auch eine Octopart Integration geben, dann kann man die
Bauteileparameter (und Datenblätter und Preise) automatisch importieren.
Echt cool.
Dein Stück Software mausert sich ja langsam zur eierlegenden
Wollmilchsau ;-)
Ich glaub, ich muss mal wieder ein Programmier-Bier spendieren...
Hallo!
Tolles Projekt! Habe schon lange Part-DB in der Version 0.5 genutzt.
Dann habe ich das Hobby ein bisschen schleifen lassen. Habe jetzt aber
die neue Version 1.0 entdeckt.
Mein Problem: Ich habe einen Server am Netz laufen und es war sehr
einfach die Version 0.6 zu installieren. Mit der Version 1.0 stosse ich
an meine Grenzen!!!
Installation alle Schritte durchgeführt - ohne Fehler! Kann das Programm
aber nicht starten --> Fehler 500!
Ist es geplant ein einfaches Installationspaket zu erstellen??
Norbert
Hallo noch einmal,
ich habe den Server jetzt zum Laufen gebracht. Jetzt habe ich noch
das Problem, dass die Seite nicht so wie bei der Demoversion angezeigt
wird.
Bitte seht den Screenshot im Anhang.
Ich bin für jede Hilfe dankbar.
Norbert
Jan B. schrieb:> Später soll es auch eine Octopart Integration geben, dann kann man die> Bauteileparameter (und Datenblätter und Preise) automatisch importieren.
Das klingt super, gibt es dafür einen Zeitplan?
Norbert schrieb:> Installation alle Schritte durchgeführt - ohne Fehler! Kann das Programm> aber nicht starten --> Fehler 500!
Die neue Part-DB Version zeigt evtl. auftretende Fehler aus
Sicherheitsgründen ohne Details an. Wenn man genauere Infos sehen
möchte, muss man in die Log Datei in var/log/prod.log schauen, da stehen
dann alle Details drin.
Norbert schrieb:> Ist es geplant ein einfaches Installationspaket zu erstellen??
Es gibt die Docker Container, die sind im Prinzip recht einfach zu
benutzen, wenn man Docker kann, da die alles komplett enhalten.
Ansonsten für die endgültigen Releases wird es vermutlich ZIP-Dateien
geben, wo alle Abhängigkeiten und Frontend Dateien gebündelt sind, so
dass man sie nur noch entpacken muss, und die ganzen Schritte nicht mehr
durchführen muss.
Aber wenn man composer und yarn einmal laufen hat, ist es aber
eigentlich nicht mehr so schwierig, die für die neuen Versionen zu
benutzen.
Norbert schrieb:> ich habe den Server jetzt zum Laufen gebracht. Jetzt habe ich noch> das Problem, dass die Seite nicht so wie bei der Demoversion angezeigt> wird.
Das sieht stark, danach aus, dass irgendwas mit den Frontend Dateien
nicht stimmt. Bei dem Schritt mit `yarn build` gab es keine
Fehlermeldungen? Zeigt die Entwicklerkonsole im Browser irgendwas an?
Hast du Part-DB in irgeneinen Subfolder installiert, daher du greifst
über sowas wie https://host.de/part-db zu?
Thom Lab schrieb:> Das klingt super, gibt es dafür einen Zeitplan?
Im Moment arbeite ich am Etikettengenerator, was ich danach mache, muss
ich mal schauen. Tendenziell ist es vermutlich aber sinnvoll erstmal
alle bestehenden Funktionen aus der alten Part-DB Version einzubauen,
bevor man so große neue Funktionen einbaut. Daher wird das evtl. noch
etwas dauern (vorher sind vermutlich so dinge wie Import/Export und
Projektverwaltung dran).
Ich glaube ich habe eine falsche Einstellung bei meinem Server.
Die Software liegt in /var/www/elo und das RootDocument ist unter
/var/www/.
Ich habe wie in der Beschreibung erklärt den Subfolder "elo" angegeben.
Ich kann Part-DB nicht auf dem RootDoc laufen lassen, da bei mir noch
eine Homepage und ein Webmailer parallel laufen.
Der browser gibt folgenden Fehler aus:
Laden fehlgeschlagen für das <script> mit der Quelle
"https://www.xxxxx.at/build/runtime.e9dea5e6.js". en:367:1
Laden fehlgeschlagen für das <script> mit der Quelle
"https://www.xxxxx.at/build/0.4804a922.js". en:367:1
Laden fehlgeschlagen für das <script> mit der Quelle
"https://www.xxxxx.at/build/app.98d70dad.js". en:367:1
Laden fehlgeschlagen für das <script> mit der Quelle
"https://www.xxxxx.at/build/ru2ftwofactor.ecdb9b27.js".
Domain habe ich unkenntlich gemacht!!
Der Browser kann nicht auf /Public zugreifen.
Kann du mir erklären welche Einstellung ich im Apache2 durchführen
muss??
MfG Norbert
Norbert schrieb:> Ich glaube ich habe eine falsche Einstellung bei meinem Server.> Die Software liegt in /var/www/elo und das RootDocument ist unter> /var/www/.>> Ich habe wie in der Beschreibung erklärt den Subfolder "elo" angegeben.> Ich kann Part-DB nicht auf dem RootDoc laufen lassen, da bei mir noch> eine Homepage und ein Webmailer parallel laufen.>> Der browser gibt folgenden Fehler aus:>> Laden fehlgeschlagen für das <script> mit der Quelle> "https://www.xxxxx.at/build/runtime.e9dea5e6.js". en:367:1> Laden fehlgeschlagen für das <script> mit der Quelle> "https://www.xxxxx.at/build/0.4804a922.js". en:367:1> Laden fehlgeschlagen für das <script> mit der Quelle> "https://www.xxxxx.at/build/app.98d70dad.js". en:367:1> Laden fehlgeschlagen für das <script> mit der Quelle> "https://www.xxxxx.at/build/ru2ftwofactor.ecdb9b27.js".>> Domain habe ich unkenntlich gemacht!!>> Der Browser kann nicht auf /Public zugreifen.>> Kann du mir erklären welche Einstellung ich im Apache2 durchführen> muss??>> MfG Norbert
Schau dir mal Punkt 5. in der Installationsanleitung an: "If you have
put Part-DB into a sub-directory on your server (like part-db/), you
have to edit the file webpack.config.js and uncomment the lines (remove
the // before the lines) .setPublicPath('/part-db/build') (line 43) and
.setManifestKeyPrefix('build/') (line 44). You have to replace /part-db
with your own path on line 44."
Wenn du die Zeilen auskommentierst und in setPublicPath(),
'/elo/public/build', einträgst sollte es vermutlich funktionieren.
Part-DB sollte dann unter www.host.at/elo/public erreichbar sein. Es
sollte aber eigentlich tatsächlich nur der Public ordner erreichbar
sein, da in den Ordern darunter tendenziell sensitive Daten gespeichert
sind (Die Config mit den Datenbank login, und private Dateianhänge,
etc.). Daher bietet es sich an Part-DB mittels vHost in eine subdomain
zu setzen (z.B. partdb.host.at).
Möglicherweise kann Apache auch so konfigurieren, dass er dann sowas wie
host.at/elo aus dem elo/public ordner liefert, aber da weiß ich nicht
auswendig wie das geht.
Hallo Jan!
Danke! Mit deiner Hilfe habe ich die Datenbank zum Laufen gebracht.
Ich habe jetzt nur noch zwei Probleme:
1) Ich kann kein neues Bauteil anlegen --> Fehlermeldung:
Oops! An Error Occurred
The server returned a "500 Internal Server Error".
Something is broken. Please let us know what you were doing when this
error occurred. We will fix it as soon as possible. Sorry for any
inconvenience caused.
2) Ich habe keinen Log-Eintrag --> Im Verzeichnis /var/log gibt es keine
Datei mit dem Namen prod.log
Norbert
Norbert schrieb:> 2) Ich habe keinen Log-Eintrag --> Im Verzeichnis /var/log gibt es keine> Datei mit dem Namen prod.log
Schau mal in ./var/log (also im Part-DB Verzeichnis nach).
Ansonsten musst du mal prüfen, ob der Webserver schreibenden Zugriff auf
das ./var verzeichnis (wieder im Part-DB Ordner) hat, bzw. Berechtigung
hat dieses anzulegen. (Wenn du composer mit sudo laufen haben hast, gibt
es da möglicherweise Rechteprobleme (da musst du mal ein `chown -R
www-data var/` ausführen).
Hallo!
Mit den Logfiles ist jetzt alles klar. Ich habe auch chown durchgeführt
-->
kein Erfolg. Ich kann noch immer kein neues Bauteil anlegen. Z.B.
Hersteller kann ich anlegen, also funktioniert die Anbindung zur
Datenbank.
Bitte um Hilfe!
Meine LogFiles:
[2020-05-11 20:10:01] request.INFO: Matched route "part_new".
{"route":"part_new","route_parameters":{"_route":"part_new","_controller
$
[2020-05-11 20:10:01] security.DEBUG: Read existing security token from
the session. {"key":"_security_main","token_class":"Symfony\\C$
[2020-05-11 20:10:01] security.DEBUG: User was reloaded from a user
provider. {"provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\$
[2020-05-11 20:10:01] php.CRITICAL: Uncaught Error: Call to undefined
function App\Entity\PriceInformations\bcscale() {"exception":"[o$
[2020-05-11 20:10:01] request.CRITICAL: Uncaught PHP Exception
Symfony\Component\ErrorHandler\Error\UndefinedFunctionError: "Attempted$
[2020-05-11 20:10:01] security.DEBUG: Stored the security token in the
session. {"key":"_security_main"} []
Norbert
Norbert schrieb:> [2020-05-11 20:10:01] php.CRITICAL: Uncaught Error: Call to undefined> function App\Entity\PriceInformations\bcscale() {"exception":"[o$
Das sieht so aus, als hättest du die php-bcmath extension nicht
aktiviert/installiert (auch wenn dann eigentlich der `composer install`
Schritt fehlgeschlagen sein sollte).
Wenn du eine Datei auf deinem Webserver mit dem inhalt:
<?php
phpinfo();
anlegst, und in einem Browser anzeigen lässt, gibt es dann eine Sektion
"bcmath" (und in der steht BCMath Support: enabled)?
Wenn nicht musst du evtl. noch mal php-bcmath installieren (daher z.B.
`apt install php7.4-bcmath` ausführen) und den Webserver neustarten.
Ansonsten musst du dann mal anfangen, die php.ini dateien anzuschauen,
ob bcmath auch tatsächlich aktiviert ist...
BCMath Support is enable!
xxxxx@xsjlask:~$ sudo php --ri bcmath
bcmath
BCMath support => enabled
Directive => Local Value => Master Value
bcmath.scale => 0 => 0
Bei der Installation hatte ich keine Fehlermeldung.
Hallo Jan!
Ich habe nach der Abfrage im Terminal es noch einmal über die Website
probiert. Siehe da, BCmath hat wirklich gefehlt. Mein Problem ist, dass
mein Server mit PHP7.3 und mit PHP7.4 läuft. PHP7.3 brauche ich noch für
eine ältere Anwendung.
Da ich nicht der Profi bei Apache2 und PHP bin, hätte ich noch eine
Frage:
Kann man bei Apache2 eine Einstellung vornehmen, bei welcher man sagt
Programm XY läuft mit PHP7.3 und Programm KJ mit PHP7.4?
Danke!
Norbert
PS.: Der letzte Beitrag von mir hat sich erledigt.
Norbert schrieb:> Kann man bei Apache2 eine Einstellung vornehmen, bei welcher man sagt> Programm XY läuft mit PHP7.3 und Programm KJ mit PHP7.4?
Im Prinzip müsste das mit FCGI gehen, dass dann die verschiedene
Programme einfach die FastCGI server der verschiedenen PHP Versionen
benutzen.
Part-DB kannst du aber auch einfach mit PHP 7.3 laufen lassen (Part-DB
braucht mindestens PHP 7.2).
Wenn es dir hilft, ich hab die ganzen Preisberechnungen jetzt von den
Berechnungsbackend abstrahiert, und jetzt ist bcmath keine unbedingt
erforderliche Erweiterung mehr (auch wenn bcmath oder sogar php-gmp die
Performance deutlich verbessern sollten).
Außerdem gibt es jetzt auch in der neuen Version wieder die Möglichkeit
Labels für Bauteile (bzw. Bauteile lots) und Lagerorte zu erstellen.
Jetzt gibt es auch QR-Codes, die man dann direkt mit einem Smartphone
scannen kann, um direkt im Browser auf die entsprechende Seite zu
gelangen.
Weiterhin kann man jetzt, wenn man möchte fast die gesamte Palette an
HTML und CSS3 nutzen, um seine Labels zu stylen, daher man kann jetzt
theoretisch auch komplexere Textformatierungen mit Farben, Boxen,
Schatten, etc. umsetzten. Der Editor für die Zeilen ist jetzt WYSIWYG,
man kann also einfache Textformatierungen (Größe, Schriftart,
Fett/Kursiv, etc.) ohne HTML Kentnisse umsetzen.
Zusätzlich zu den bisherigen Modus, wo man Platzhalter in den Text
einfügt, und der dann entsprechend einfach ersetzt wird, gibt es für
fortgeschrittene Nutzer auch die möglichkeit Twig
(https://twig.symfony.com/doc/3.x/) zu nutzen. Das ist die Template
Engine, die ich auch für die normalen Part-DB-Seiten benutze, und es
ermöglicht wesentlich komplexere Labels. So kann man z.B. Bedingungen,
wann welche Felder angezeigt werden sollen, oder ähnliches umgesetzt
werden (Im Endeffekt handelt es sich um eine Turing-vollständige
Sprache, man kann damit also quasi alles umsetzen)...
Weiterhin gibt es jetzt einen in Part-DB eingebauten Labelscanner, der
eine vorhandene Webcam (oder Handykamera) nutzen kann, um die Barcodes
zu erkennen, und einen dann auf die entsprechende Seite weiterzuleiten
(siehe z.B. https://part-db.herokuapp.com/en/scan).
Hallo,
gibt es eigentlich so etwas wie ein "Best Practice" welche Labels wohin
gehören?
Wenn ich mir einen Sortimentskasten mit Schüben vorstelle, die
zusätzlich noch Unterteilungen haben, beschriftet ihr hier die einzelnen
Schübe mit Location Labels und die "internen" Unterteilungen mit Bauteil
Labels? Oder haben bei einem solchen Szenario Bauteil Labels überhaupt
eine Bedeutung?
Danke & Grüße
Noby
noby schrieb:> Wenn ich mir einen Sortimentskasten mit Schüben vorstelle, die> zusätzlich noch Unterteilungen haben, beschriftet ihr hier die einzelnen> Schübe mit Location Labels und die "internen" Unterteilungen mit Bauteil> Labels?
Ich habe die meisten Bauteile in Tüten (in den sie geliefert werden,
Reichelt packt die ja z.B. einzeln in so wiederverschließbaren Tüten),
da klebe ich dann einen Bauteileaufkleber (bzw. jetzt einen Bauteile Lot
Aufkleber) drauf.
Die Kisten selber haben zwar einen Aufkleber, damit man weiß, welche
Kiste das ist, aber die einzelnen Fächer selbst haben kein Label (die
konkreten Fächerbezeichnungen kann man sich recht einfach selbst
herleiten. Z.B. C4: Dritte Reihe, Spalte 4, das würde auch nicht
schneller gehen, wenn das Fach beschriftet wäre.)
Ich denke das hängt so ein bisschen davon ab, wie viele Sortimentsfächer
du hast, wie viel Platz dort für Labels ist, und wie "offensichtlich" es
ist, was die genaue Bezeichnung ist und ob es möglich verschiedene
Fächer zu vertauschen. Wenn man die Schübe oft herausnimmt, könnte es
sinnvoll sein, diese zu beschriften, sodass man weiß an welche Position
im Sortimentskasten der Einschub wieder hinmuss.
Danke für die Antwort. Die Idee für die Fächer Zeilen Buchstaben und für
die Spalten zahlen zu vergeben finde ich schonmal sehr gut.
Wo ich aktuell noch etwas strauchel ist der Unterschied zwischen Part
und Part lot Label. Mir ist klar das ein Part lot die Referenz zwischen
Part und Storage Location darstellt.
Aktuell habe ich z.b. Netzteile in Ikea Kisten verstaut. Die Kiste hat
ein Storage Label. Das Netzteil ein Part Label. Mein Hintergedanke war
hierbei das ich das Netzteil so ggf. Einfacher in eine andere Box
umbuchen kann ohne das Label zu ändern.
Man muss natürlich erst aus der Bestandsliste den korrekten Bestand
suchen.
Wenn man für sortimentskästen die einzelnen Schübe und deren
Unterteilungen einzeln beschriftet könnte man in der Tat ein Part lot
Label verendenden und auf das Label die Storage Location und den Part
Namen aufdrucken.
Noby schrieb:> Wo ich aktuell noch etwas strauchel ist der Unterschied zwischen Part> und Part lot Label. Mir ist klar das ein Part lot die Referenz zwischen> Part und Storage Location darstellt.
Ich bin der Ansicht, dass man eigentlich fast immer Part Lot Aufkleber
nutzen sollte, da man dann eben den Bezug zu Lagerort und Menge
herstellen kann.
Verschieben kann man den Lot ja immer noch in der Datenbank (der
Aufkleber verweist im Barcode nur auf den Lot, nicht den Lagerort)
verschieben. Wenn man das häufiger macht, sollte dann aber nicht der
Lagerort auf dem Label stehen (aber den kann man ja auch weglassen, wenn
man mag).
Noby schrieb:> Aktuell habe ich z.b. Netzteile in Ikea Kisten verstaut. Die Kiste hat> ein Storage Label. Das Netzteil ein Part Label. Mein Hintergedanke war> hierbei das ich das Netzteil so ggf. Einfacher in eine andere Box> umbuchen kann ohne das Label zu ändern.> Man muss natürlich erst aus der Bestandsliste den korrekten Bestand> suchen.
Wenn man eine überschaubare Menge von relativ großen Einzelgegenständen
hat, macht es evtl. Sinn für jedes Netzteil, ein eigenes Lot zu
erstellen, dann kann man die beliebig bewegen, und man könnte sogar die
Seriennummer oder ähnliches
Vielen Dank für die Software. Die Demo macht auch einen sehr guten
Eindruck.
Hat jemand schon seine Bauteile von einer EleLa-Datenbank in Part-DB
migriert?
Ich habe in meiner EleLa-Datenbank recht viele Bauteile und ohne einen
Weg mit geringem Aufwand diese zu portieren wäre es vom zeitlichen
Aufwand viel zu aufwendig. Falls jemand hier Lösungsansätze hat, wäre
ich ihm dankbar, wenn er sie teilen könnte.
Gerald *. schrieb:> Mahlzeit,>> wie ist den die Entnahme von Bauteilen angedacht?>> Grüße
Im Moment muss man dazu noch das Bauteil bearbeiten, und beim richtigen
PartLot die Anzahl richtig verringern.
Ich werde aber hoffentlich bald, wenn ich dazu komme, einen Dialog auf
der Bauteile Info-page einbauen, wo man das dann so relativ komfortabel
machen kann. Ähnlich zu den alten Versionen (das ganze ist aber etwas
komplizierter, da man das Bauteil ja jetzt aus unterschiedlichen
Lagerorten entnehemen kann).
Ich weiß aber noch nicht wann ich dazu komme das zu implementieren, im
moment bin ich noch mit einer Bachelorarbeit beschäftigt ^^
@ A. D. (adnc)
Copy&paste ist das was ich gemacht habe.
Ist Arbeit und hat bei mir einige Stunden gedauert.
Ein Script dafür wäre super gewesen, aber dafür kenne ich mich mit
Datenbanken zu schlecht aus um das selber zu machen.
Außerdem ist es für mich nun zuspät.
@Jan
Tolle Arbeit!
Was ich persönlich nervig finde ist das man den linken Bereich nicht
zusammen klappen kann. Also Lagerorte, Hersteller, Tools, ... Auch das
ich nicht alle sofort im Zugrif habe.
Karl schrieb:> Was ich persönlich nervig finde ist das man den linken Bereich nicht> zusammen klappen kann. Also Lagerorte, Hersteller, Tools
In den Part-DB 1.0 Versionen gibt es einen kleine Pfeil am linken Rand
der Sidebar mit dem man diese ein und ausblenden kann (siehe Screenshot
im Anhang). Dann füllt der Inhalt die gesamte Breite des Bildschirms
aus.
Karl schrieb:> Auch das> ich nicht alle sofort im Zugrif habe.
Was genau meinst du damit? Ich kann noch ein wählbares Menü hinzufügen,
wo dann alles in einer Baustruktur zu finden ist (also mit den Einträgen
"Kategorien", "Footprints", etc. und dann darunter die entsprechenden
Einträge. Ich persönlich finde es zwar angenehmer, das in getrennten
Menüs zu haben, aber das sollte keinen großer Aufwand zu sein, so ein
Universalmenü hinzuzufügen...
Da ich mich gerade nach einer Alternative zu einem anderen hier
Bekannten Programm umsehe habe ich mir die Demo angesehen und versuche
mich gerade an einer Installation.
So ein Script zum wechseln wäre super aber kopieren geht auch.
In der Demo habe ich mir die linke Seite angeschaut und ich denke ich
verstehe wo sein Problem ist.
Ich sehe immer nur 3 Kategorien und diese kann man nicht einzeln
zusammen klappen. Die Punkte darunter kann man weiter auf /zuklappen.
Den Pfeil habe ich sogar übersehen.
Obwohl ich noch nicht alles getestet habe kann ich schon sagen das mich
das auch stören würde. Aber vielleicht sehe ich es ja auch nicht . Nach
3 Stunden testen kann ich ja ganz leicht was übersehen haben und man
kann ganz einfach mehrere Kategorien da anzeigen und diese auch zu
klappen.
@Jan
Da habe ich anscheined etwas zu wenig geschrieben das sogar schon Andere
meine Geganken versuchen nach zuvollziehen.
Ich meinte das ich nur 3 Kategorien habe und diese nicht einzel zusammen
klappen kann. Alleine in der Demo unter Bauteile wird die Liste recht
lang und die kann ich nicht zusammen klappen. Das mit dem ganz
Ausblenden ist zwar schön aber hilft nicht wirklich.
Es stört mich halt etwas, aber es hindert mich nicht daran Part-DB
einzusetzen. Ich finde es ein tolles Tool und besonders weil es im
Browser läuft und ich nicht auf ein spezielles Betriebssystem angewiesen
bin.
Hi,
nachdem ich die Demo ausprobiert hatte, war ich so neugierig, und habe
die V1 „mal“ auf meinem Ubuntu svr installiert. Nachdem ich, soweit
glaube ich, alles nach Anleitung installiert habe, bekomme ich, wenn ich
mit dem Browser auf die Adresse gehe, immer nur den Inhalt des
„Part-DB-symfony“ Ordners angezeigt. Hier ist auch nur eine .php zu
sehen, die ecs.php.
Ich habe daneben auch noch WordPress und weiteres am Laufen, welche auch
mit auf die project/public umgezogen sind, dies laufen. Habt Ihr evtl.
eine Idee, wo ich es vermasselt haben könnte?
Danke
PeterGeht
PS : Infos liefere ich gerne nach.
Karl schrieb:> Ich meinte das ich nur 3 Kategorien habe und diese nicht einzel zusammen> klappen kann. Alleine in der Demo unter Bauteile wird die Liste recht> lang und die kann ich nicht zusammen klappen. Das mit dem ganz> Ausblenden ist zwar schön aber hilft nicht wirklich.
das ist tatsächlich etwas, was mich im Vergleich zur "alten" Version
auch etwas stört - dort nämlich kann ich zumindest das Thema
"Baugruppen" komplett "einklappen", weil es dort noch die "feste
Unterkategorie" "Übersicht" gibt, und die als solche dann eben klappbar
ist.
Das mag bestimmt gliederungstechnisch inkonsistent sein, in der neuen
Version jedoch würden mir die "Baugruppen" die linke Leiste doch arg im
Weg sein.
Es wäre schön, wenn die oberste Ebene der linken Leiste auch "klappbar"
gestaltet werden könnte...
Jan L. schrieb:> das ist tatsächlich etwas, was mich im Vergleich zur "alten" Version> auch etwas stört - dort nämlich kann ich zumindest das Thema> "Baugruppen" komplett "einklappen", weil es dort noch die "feste> Unterkategorie" "Übersicht" gibt, und die als solche dann eben klappbar> ist.
Die ganze Geschichte mit den Baugruppen wird sich noch stark ändern, die
aktuelle Anzeige war mehr so als Platzhalter gedacht (und er
funktioniert ja auch nicht).
PeterGeht schrieb:> Hi,> nachdem ich die Demo ausprobiert hatte, war ich so neugierig, und habe> die V1 „mal“ auf meinem Ubuntu svr installiert. Nachdem ich, soweit> glaube ich, alles nach Anleitung installiert habe, bekomme ich, wenn ich> mit dem Browser auf die Adresse gehe, immer nur den Inhalt des> „Part-DB-symfony“ Ordners angezeigt. Hier ist auch nur eine .php zu> sehen, die ecs.php.> Ich habe daneben auch noch WordPress und weiteres am Laufen, welche auch> mit auf die project/public umgezogen sind, dies laufen. Habt Ihr evtl.> eine Idee, wo ich es vermasselt haben könnte?>> Danke> PeterGeht
Im Idealfall wird Part-DB in einen eigenen VHost (also eine eigene
Subdomain) installiert und liegt dort auf /. Der Webserver hat eine
DocumentRoot Einstellung (pro VHost), in der man angeben kann, von wo
die Dateien ausgeliefert werden sollen. Diese Einstellung muss auf den
public/ Folder von Part-DB zeigen. Dort liegt die index.php die dann von
deinem Browser aufgerufen wird.
Zum testen kannst du mal probieren im Browser direkt die URL public/
oder public/index.php, dann solltest du zumindest irgendwas sehen (auch
wenn es ziemlich kaputt aussehen wird, da ihm Styles fehlen). Da man so
aber prinzipiell Zugriff auf Dateien mit sensitiven Inhalt hat (z.B. die
.env in der die Datenbankzugangsdaten drin stehen), sollte man ihn so
nicht betreiben.
Im Prinzip sollte es auch möglich sein Part-DB in irgendein
Unterverzeichnis zu installieren, dann muss man aber a) den Pfad in der
webpack.config.js ändern (In zeile 47 findet sich ein Beispiel dafür)
anpassen und b) mit einer Rewrite die URLs an die Dateipfade anpassen
(das habe ich aber noch nie gemacht).
tsx schrieb:> Eine Public-DB / API zum up/download von "fertig"-Parts. Wie ein> Repository Server oder wie auf Git.
Gibt es bereits, nennt sich Octopart (https://octopart.com/).
Die bieten auch eine API zur Integration in eigene Anwendungen an. Es
ist auch geplant, das in Part-DB zu integrieren, dafür brauche ich aber
etwas Zeit.
Ich werde versuchen, dass möglichst modular zu integrieren, sodass dann
auch theoretisch andere Datenquellen benutzt werden können (mir fallen
aber sonst keine mehr ein, für elektronische Bauteile)...
Ich hätte eine Frage zur Import Funktion, z.B. für Footprints:
Dateiformat ist z.B. JSON. Welche Felder gibt es für dieses Format? Ich
würde gerne Footprints anlegen per Import, und dazu die Bilder in
public/img/footprints einbinden. Die passenden JSON Dateien könnten per
Skript erzeugt werden. Gibt es dazu ein Bespiel?
Gruß,
Frank
Tom schrieb:> Hallo,>> gibt es eine Möglichkeit dies auf einem herkömmlichen Webspace laufen zu> lassen? Mein Paket bei all-inkl hat php, mysql als db
Und wie sieht die Upgrade Möglichkeit von einem bestehenden Part-DB
0.5.9 auf einem Webspace ohne Konsolenzugriff aus?
Gruß
Gerald
Ich glaube ich habe gerade beim Testen von ein paar Eingaben den
Datenbankzugriff zum Absturz gebracht, als ich ein paar Unterkategorien
in meine neu angelegten Kategorien einfügen wollte.
Dabei, also beim Anlegen von 4 Unterkategorien ist auch eine ganze
Oberkategorie einfach verschwunden.
D.h. die ist nicht mehr da, bzw. wie gelöscht, obwohl ich sie nicht
gelöscht habe. Die bereits angelegten Unterkategorien hat es dann
mitgerissen, die sind auch weg.
Siehe Screenshot.
Ebenso kann ich mir jetzt nicht mehr die Listen in den Rubrken
"Kategorien" (root node) und "Baugruppen" (root ode) ansehen, weil die
Software darauf nicht mehr reagiert, wenn ich mir hier die Listen
anzeigen lassen will.
Ich vermute da einen Fehler beim Zugriff auf die Datenbank, weswegen das
passiert. Hier wäre eine Fehlermeldung sinnvoll.
Das Event Log hilft leider auch nicht weiter. Da müsstest du mal in
/var/log/* reingucken, was da schiefgelaufen ist.
Jan, vielleicht guckst du dir das mal an.
Das ist möglicherweise auch eine Sicherheitslücke, wenn es die Datenbank
dahinter betrifft.
Moin,
ich wollte man fragen ob das Docker Image noch aktuelle ist,
1
docker pull jbtronics/part-db1
2
docker run --name Part-DB --restart=unless-stopped -d -p 8080:80 jbtronics/part-db1
den bei mir liefert es folgende Fehlermeldung:
1
n exception occurred while executing 'SELECT t0.disabled AS disabled_1, t0.config_theme AS config_theme_2, t0.pw_reset_token AS pw_reset_token_3, t0.config_instock_comment_a AS config_instock_comment_a_4, t0.config_instock_comment_w AS config_instock_comment_w_5, t0.trusted_device_cookie_version AS trusted_device_cookie_version_6, t0.backup_codes AS backup_codes_7, t0.id AS id_8, t0.google_authenticator_secret AS google_authenticator_secret_9, t0.config_timezone AS config_timezone_10, t0.config_language AS config_language_11, t0.email AS email_12, t0.department AS department_13, t0.last_name AS last_name_14, t0.first_name AS first_name_15, t0.need_pw_change AS need_pw_change_16, t0.password AS password_17, t0.name AS name_18, t0.settings AS settings_19, t0.backup_codes_generation_date AS backup_codes_generation_date_20, t0.pw_reset_expires AS pw_reset_expires_21, t0.last_modified AS last_modified_22, t0.datetime_added AS datetime_added_23, t0.perms_system AS perms_system_24, t0.perms_groups AS perms_groups_25, t0.perms_users AS perms_users_26, t0.perms_self AS perms_self_27, t0.perms_system_config AS perms_system_config_28, t0.perms_system_database AS perms_system_database_29, t0.perms_parts AS perms_parts_30, t0.perms_parts_name AS perms_parts_name_31, t0.perms_parts_category AS perms_parts_category_32, t0.perms_parts_description AS perms_parts_description_33, t0.perms_parts_minamount AS perms_parts_minamount_34, t0.perms_parts_footprint AS perms_parts_footprint_35, t0.perms_parts_lots AS perms_parts_lots_36, t0.perms_parts_tags AS perms_parts_tags_37, t0.perms_parts_unit AS perms_parts_unit_38, t0.perms_parts_mass AS perms_parts_mass_39, t0.perms_parts_manufacturer AS perms_parts_manufacturer_40, t0.perms_parts_status AS perms_parts_status_41, t0.perms_parts_mpn AS perms_parts_mpn_42, t0.perms_parts_comment AS perms_parts_comment_43, t0.perms_parts_order AS perms_parts_order_44, t0.perms_parts_orderdetails AS perms_parts_orderdetails_45, t0.perms_parts_prices AS perms_parts_prices_46, t0.perms_parts_parameters AS perms_parts_parameters_47, t0.perms_parts_attachements AS perms_parts_attachements_48, t0.perms_devices AS perms_devices_49, t0.perms_devices_parts AS perms_devices_parts_50, t0.perms_storelocations AS perms_storelocations_51, t0.perms_footprints AS perms_footprints_52, t0.perms_categories AS perms_categories_53, t0.perms_suppliers AS perms_suppliers_54, t0.perms_manufacturers AS perms_manufacturers_55, t0.perms_attachement_types AS perms_attachement_types_56, t0.perms_currencies AS perms_currencies_57, t0.perms_measurement_units AS perms_measurement_units_58, t0.perms_tools AS perms_tools_59, t0.perms_labels AS perms_labels_60, t0.group_id AS group_id_61, t62.enforce_2fa AS enforce_2fa_63, t62.comment AS comment_64, t62.not_selectable AS not_selectable_65, t62.name AS name_66, t62.id AS id_67, t62.last_modified AS last_modified_68, t62.datetime_added AS datetime_added_69, t62.perms_system AS perms_system_70, t62.perms_groups AS perms_groups_71, t62.perms_users AS perms_users_72, t62.perms_self AS perms_self_73, t62.perms_system_config AS perms_system_config_74, t62.perms_system_database AS perms_system_database_75, t62.perms_parts AS perms_parts_76, t62.perms_parts_name AS perms_parts_name_77, t62.perms_parts_category AS perms_parts_category_78, t62.perms_parts_description AS perms_parts_description_79, t62.perms_parts_minamount AS perms_parts_minamount_80, t62.perms_parts_footprint AS perms_parts_footprint_81, t62.perms_parts_lots AS perms_parts_lots_82, t62.perms_parts_tags AS perms_parts_tags_83, t62.perms_parts_unit AS perms_parts_unit_84, t62.perms_parts_mass AS perms_parts_mass_85, t62.perms_parts_manufacturer AS perms_parts_manufacturer_86, t62.perms_parts_status AS perms_parts_status_87, t62.perms_parts_mpn AS perms_parts_mpn_88, t62.perms_parts_comment AS perms_parts_comment_89, t62.perms_parts_order AS perms_parts_order_90, t62.perms_parts_orderdetails AS perms_parts_orderdetails_91, t62.perms_parts_prices AS perms_parts_prices_92, t62.perms_parts_parameters AS perms_parts_parameters_93, t62.perms_parts_attachements AS perms_parts_attachements_94, t62.perms_devices AS perms_devices_95, t62.perms_devices_parts AS perms_devices_parts_96, t62.perms_storelocations AS perms_storelocations_97, t62.perms_footprints AS perms_footprints_98, t62.perms_categories AS perms_categories_99, t62.perms_suppliers AS perms_suppliers_100, t62.perms_manufacturers AS perms_manufacturers_101, t62.perms_attachement_types AS perms_attachement_types_102, t62.perms_currencies AS perms_currencies_103, t62.perms_measurement_units AS perms_measurement_units_104, t62.perms_tools AS perms_tools_105, t62.perms_labels AS perms_labels_106, t62.parent_id AS parent_id_107, t62.id_preview_attachement AS id_preview_attachement_108, t0.currency_id AS currency_id_109, t0.id_preview_attachement AS id_preview_attachement_110 FROM "users" t0 LEFT JOIN "groups" t62 ON t0.group_id = t62.id WHERE t0.id = ? LIMIT 1' with params [1]:
2
3
SQLSTATE[HY000]: General error: 1 no such table: users
Es scheint als würde es keine Datenbank geben.
Grüßle
@Jan B.
Mir fällt gerade auf, dass es noch keine Möglichkeit gibt global die
Tabellenansichten zu definieren.
Wenn ich bspw. bei einer Tabelle die Spalte mit den "Tags" einblenden
will, dann kann ich das nur für die Einzelseite machen und wenn ich dann
zwischen zwei Tabellen hin und her springe, dann geht die Einstellung
auch gleich wieder verloren.
Damit das nicht so ist, wären hier zwei Änderungen nötig:
1. Es muss eine Möglichkeit geben, dass sich Kategorien die
Tabellenansichten merken können.
D.h. Datenbanktabelle die die Daten für eine Kategorie enthält, benötigt
noch ein Feld, in dem gespeichert wird, welche Spalten dargestellt
werden sollen.
Ebenso muss noch ein Wert gespeichert werden, der festlegt, ob eine
manuelle Ansicht aktiviert wurde oder nicht. Das ist für Punkt 2
wichtig.
2. Es fehlt noch die Möglichkeit globale Tabellenansichten zu
definieren.
So das eine Ansicht immer gilt, wenn man sie nicht manuell festgelegt
hat, also für die jeweilige Kategorie hier der Wert für die manuelle
Ansicht in der Tabelle nicht gesetzt wurde.
Und
3. Damit ein verwalten der manuell gesetzen Ansichten einfach wird.
Sollte es eine Tabelle geben, in der schön bequem in einer Spalte alle
Kategorien aufgelistet sind und daneben eine Spalte für die Frage, ob
eine manuelle Ansicht gesetzt ist oder nicht.
Die Tabellenansicht für diese Einstellung benötigt dann noch einen
Button um für alle gerade angezeigten Kategorien diesen Bool Wert, ob
eine manuelle Ansicht gewünscht ist oder nicht, auf einmal zu setzen.#
4. Auch nicht schlecht wäre, wenn man selbstdefinierte "Tag" Gruppen
definieren könnte und man diese Taggruppen dann auch als eigene Spalten
in der Spaltenansicht zur Verfügung hätte.
Dadurch würde man vermeiden, dass in der Tabellenansicht verschiedene
Tags miteinander nicht verwurstelt werden können und gezielt nach
bestimmten Tags sortiert werden kann.
Man denke da bspw. ein Tag um zu markieren, dass ein Bauteil "veraltet"
ist.
Hat man jetzt noch irgendeinen anderen Tag, dann geht der Tag "veraltet"
beim Sortieren unter, da der andere vielleicht die Sortierreihenfolge
ändert.
Hallo!
Wollte sehr gerne das neue Part-DB testen und in Zukunft selbst nutzen,
doch leider bekomme ich es nicht auf einen Debian Server installiert.
Die Installation ist für mich als ungeübter Linux User doch etwas
komplexer als angenommen.
Somit wollte ich gerne das Docker Paket dafür verwenden, doch leider
scheint dieses Paket wirklich kaputt zu sein.
Ich bekomme die gleichen Fehler wie der User "Part-DB Gast", wenn ich
die Webseite von Part-DB aufrufen möchte.
Viele Grüße
Neuer Part-DB User
Part-DB Gast schrieb:> Moin,>> ich wollte man fragen ob das Docker Image noch aktuelle ist,docker pull> jbtronics/part-db1> docker run --name Part-DB --restart=unless-stopped -d -p 8080:80> jbtronics/part-db1
Tatsächlich waren die verfügbaren Docker-Images veraltet, da seit
einigen Monaten der unbemerkt der automatische Build-Prozess
fehlgeschlagen ist. Das hatte zwar nix mit der untenstehenden
Fehlermeldung zu tun, aber ist jetzt behoben, und sollte nach dem ich
das ganze auf GitHub Actions migriert habe, auch auffallen, sollte es in
Zukunft erneut fehlschlagen.
> den bei mir liefert es folgende Fehlermeldung:> SQLSTATE[HY000]: General error: 1 no such table: users> Es scheint als würde es keine Datenbank geben.
Das Docker-Image legt die Datenbank nicht automatisch an (weil dann auch
das admin Passwort generiert wird, und der user das aktiv sehen sollte).
Daher muss man nach der Einrichtung des Docker containers mit dem Namen
partdb noch einmal den Befehl docker exec --user=www-data partdb
bin/console doctrine:migrations:migrate ausführen.
Wichtig ist es auch die entsprechenden Ordner als Volumes einzubinden,
so dass Daten und die SQLite Datenbank persistent über
Container-Änderungen bleiben. Ich habe mal dazu eine kleine Anleitung
erstellt:
https://github.com/Part-DB/Part-DB-symfony/blob/master/docs/docker/docker-install.md
Es gibt jetzt auch eine docker-compose.yml Datei mit das ganze
automatisch konfiguriert wird.
Gruß
Jan
Hallo Jan,
wie kann eine auf einem Webshoster bestehende 0.5.9 Installation auf den
letzten Stand der Part-DB-symfony Version gebracht werden? Es ist kein
SSH Zugang vorhanden.
Grüße
Hallo!
Ich habe gerade erst mit einiger Mühe Part-DB "Version: 1.0.0-alpha" auf
der Basis des Docker-Containers auf GitHub auf einer Synology
DiskStation ans Laufen gebracht. Die SQLITE Datenbank app.db liegt mit
336kB im Docker-Verzeichnis auf der Synology. Leider habe ich keinen
Backup - nach nur drei Stunden Betrieb... :-/
Heute, nach dem Anlegen von 88 Kategorien und lediglich 2 Komponenten
kann ich die Komponenten zwar über die Suche oben rechts finden,
angezeigt werden für diese Komponenten in der Maske aber nur
Fragezeichen. Beim Klick auf die Fragezeichen des Namens erscheint dann
die angehängte Fehlermeldung.
Ich habe lediglich Informationen wie Name, Preis, Anzahl, Lieferant
eingetragen, aber keine Bilder oder Dokumentation angehängt.
Weder die Synology, noch der Container wurden "unterbrochen" oder neu
gestartet, die Browser-Verbindung zum PC wurde während der Anlage
ebenfalls nicht unterbrochen.
Ich befürchte anhand der Fehlermeldungen, das die Datenbank korrupt ist.
Eine Reparaturfunktion habe ich nicht gefunden.
Daraus ergeben sich für mich einige Frage:
1. Wie kann man meine DB möglichst reparieren? 88 Kategorien sind schon
ein wenig Arbeit, die ich ungern wiederholen möchte.
2. Wenn es sich um einen Fehler handelt und im Main-Zweig auf GitHub
korrigiert wurde, mit welchem Verzug kann ich mit einem aktualisierten
Docker-Image rechnen?
3. Ist das überhaupt für den Container vorgesehen?
Ansonsten finde ich Part-DB in der Version 1.0.0-alpha bereits sehr gut
benutzbar, wenn denn die Daten heil bleiben.
Sobald die DB wieder läuft, werde ich meine Installationsschritte bzgl.
Container und Synology gerne hier dokumentieren. Aus der Sicht eines
SW-Spezialisten mag alles ausreichend dokumentiert sein, aber selbst als
erfahrener Hobbyist kann man aber reichlich Zeit damit verbringen.
Grüße, Microplayer
Hallo zusammen!
Heute Morgen habe ich mich nochmal drangesetzt, nachdem der erste Frust
abgeflaut war. Ergebnis: Der Effekt wird anscheinend nur für einen
"normalen" Benutzer OHNE Admin-Rechte sichtbar. Auf der GitHub-Seite der
Version 1.0 habe ich gerade eine entsprechende Beschreibung hinterlegt:
https://github.com/Part-DB/Part-DB-symfony/issues/108
Grüße, Microplayer
Hallo? Ist hier vielleicht noch jemand aktiv, der seine
Rechte-Einstellungen im Linux-Dateisystem und sonstige Einstellungen im
Docker-Container mal mit meinen vergleichen könnte? Ich komme sonst
nicht weiter. Mit PHP und Apache kenne ich mich leider auch nicht
wirklich aus.
Danke vorab!
Microplayer
Für alle, die sich gewundert haben, warum das aktuelle Image keine
JPEG-Bilder für Parts akzeptiert und stattdessen eine Exception wirft:
Heute Abend habe ich ein neues Dockerfile als Plaintext im Bereich
Issues #112 in GitHub hochgeladen, dass im lauffähigen Container
(wenigstens bei mir) dann nach ersten Tests wieder problemlos mit JPG
umgehen kann.
Alles weitere findet sich in den Notizen im Dockerfile.
!!!! Ist hier außer mir noch irgend jemand mit Part-DB aktiv ????
Ein kurzes: "Da kann ich leider auch nicht helfen, wäre wenigstens ein
erstes Lebenszeichen."
Microplayer
Roger Z. schrieb:> Ein kurzes: "Da kann ich leider auch nicht helfen, wäre wenigstens ein> erstes Lebenszeichen."
Guten Abend Microplayer,
ich habe deinen Beitrag hier und auf Github verfolgt, kann aber leider
nicht wirklich etwas dazu beitragen.
Grüße
Eine Ergänzung meiner Nachricht vom 06.06.2021 23:39 -
das Dockerfile mit JPG-Support findet sich mittlerweile als Issue #115
in GitHub. Das eröffnete die Möglichkeit, die Beschreibungen und
Hardcopies meiner Fehlersuche durch Schliessen des originalen Issue #112
"aus dem Weg" zu räumen.
Schönen Abend, Microplayer
Danke, Gerald (Pyromane) für die Rückmeldung.
Darf ich dann gleich mal die Frage stellen, ob es eine Einstellung für
den Timeout gibt, mit dem ein User automatisch ausgeloggt wird?
Ich lege als Einsteiger munter Kategorien an und wundere mich, warum ich
auf einmal keinen Namen für einen neue Kategorie mehr eintragen kann...
Bis ich merke, das mein Standarduser oder auch "admin", wohl
automatisch, ausgeloggt wurden.
Solche Dinge könnte man prima im Projekt-Wiki hinterlegen.
Die Dokumentation der 1.0er ist leider reichlich dünn, nicht wahr?
Grüße, Microplayer
Hi,
ein Kollege hat mir dankenswerterweise jetzt den Docker-Container
eingerichtet und ich spiele das ein bisschen an.
Hab mal probehalber ein paar Bauteile angelegt.
Dabei ist mir folgendes Aufgefallen:
Selbst wenn man sich ausloggt, sieht man immer noch alle Bauteile in
allen Kategorien. - Das ist zwar im Intranet aufm Abteilungsserver zwar
nicht schlimm, aber unschön.
Aber wenn ich das bei mir daheim aufm Server (NAS) einrichten würde, der
übers Internet erreichbar ist, könnte ja auch jeder alle Bauteile sehen
(wenn auch nicht editieren). Das geht natürlich gar nicht.
Wie kann man das besser absichern?
Beste Grüße, Marek
Gibt es eigentlich einen ungefähren Zeitplan, wann Part-DB 1.0 aus dem
Betastatus rauskommt und für den Alltagseinsatz bereit ist?
Ich habe mir mal die Commithistory auf github angesehen und stelle fest,
dass es nur noch sehr spärlich über mehrere Monate verteilt, sehr kleine
Commits gibt.
Ich vermute mal, dass Jan derzeit sehr viel zu tun hat, aber es wäre
schon toll, zu erfahren, wie die weitere Planung aussieht und was noch
fehlt.
Also einfach mal ein Lebenszeichen und nen aktuellen Stand der Lage.
Marek N. schrieb:> Selbst wenn man sich ausloggt, sieht man immer noch alle Bauteile in> allen Kategorien. - Das ist zwar im Intranet aufm Abteilungsserver zwar> nicht schlimm, aber unschön.
Den Benutzer "anonymous" aus der Gruppe readonly nehmen und schon
sollten nur mehr angemeldete Benutzer die Daten.
Marek N. schrieb:> Wie kann man das besser absichern?
Reverse Proxy in Kombination mit htaccess wäre eine Möglichkeit
Grüße
Hallo Marek!
Vielleicht interpretiere ich zu viel in Deine Nachricht vom 20.07.2021
15:27 hinein, aber...
Du solltest Dich DRINGEND über die Gefahren für Deine NAS-Daten
informieren, wenn Du Dein NAS im Internet sichtbar machst! Es gibt
zahllose Beispiele, wie Kriminelle solche private NAS-Server wie Deinen
übernehmen und zu SPAM-Schleudern oder DDOS-Quellen machen oder schlicht
DEINE Fotos, Briefe und Excels VERSCHLÜSSELN - ebenso wie Deinen schönen
neuen Part-DB Container...
Falls Du, wie ich vermute, als Privatanwender unterwegs bist und nur
gelegentlich aus der Ferne auf Deine Daten zugreifen möchtest, dann
richte Dir bitte eine sichere "VPN-Verbindung" per IPSec o.ä. ein, statt
Dein ganzes NAS per Port-Forwarding als Webserver im Internet sichtbar
zu machen!!!
Alles Gute!
Microplayer
Hallo zusammen!
Hallo Jan B. (do9jhb)!
Die scheinbar "spielerisch" einfache Antwort von Gerald *. (pyromane)
vom 21.07.2021 23:12 auf die Frage von Marek N. nehme ich mal zum
Anlass, um JanB zu bitten, das integrierte Wiki von GitHub für sein
Part-DB Projekt zu aktivieren.
Das würde interessierten und motivierten Nutzern seiner tollen Part-DB
Software die Möglichkeit geben, eine vernünftige Dokumentation für
Part-DB 1.0 zu erstellen und mit anderen Nutzern und NEUEINSTEIGERN zu
teilen.
@JanB:
Angesichts der relativ langsamen Weiterentwicklung von Part-DB kann man
absehen, dass Du aktuell recht wenig Zeit hast. Das ist völlig OK! Wir
alle haben viele Verantwortungen gegenüber vielen anderen Menschen.
Aber bitte probiere doch mal aus, ob Du Deine existierende Part-DB
Community nicht auch FÜR das Projekt einsetzen kannst - indem Du das
Wiki öffnest.
Lass uns bitte wissen, ob aus Deiner Sicht ggf. Sicherheitsbedenken o.ä.
gegen eine Öffnung des Wiki sprechen. Vermutlich kann man den Zugang auf
bekannte GutHub-Accounts einschränken. Das wäre sicher einfach zu
organisieren.
Grüße vom Microplayer
Hallo,
ich habe es geschafft, PartDB zum Laufen zu bekommen und steige somit
gerade in das Thema ein.
Bitte mal eine Frage zur Praxis: Die Spalte mit den Kategorien ist bei
mir so schmal, dass ab der dritten Ebene umgebrochen wird. (Siehe
Anhang)
Kann man irgendwo einstellen, dass die Spalte breiter wird? Die Tabelle
mit den Bauteilen gibt es ohne weiteres her, dass sie schmaler werden
kann.
Grüße
Klaus
Hi Microplayer,
danke für deinen Hinweis!
Keine Sorge das NAS (Synology) stellt nicht alle Daten darauf ist Netz.
Ich habe kein Ordnerfreigaben veröffentlicht. Selbst ssh habe ich
deaktiviert, wenn kein akuter Bedarf besteht.
Ich lasse in der WebStation einen Apache bzw. ngnix-Webserver laufen,
der mein DokuWiki über einen ganz bestimmten Port im Internet verfügbar
macht. Das DW ist so konfiguriert, dass nur die Startseite mit einem
Login für einen vorhandenen User angezeigt wird. Keine Ordnerstruktur,
keine neuen User.
Gerald *. schrieb:> Den Benutzer "anonymous" aus der Gruppe readonly nehmen und schon> sollten nur mehr angemeldete Benutzer die Daten.
Hm, wenn ich dem User "anonymous" die Gruppe entferne, kann ich den
Eintrag nicht speichern. Auch kann ich diesen User nicht löschen.
Seltsam.
Marek N. schrieb:> Gerald *. schrieb:>> Den Benutzer "anonymous" aus der Gruppe readonly nehmen und schon>> sollten nur mehr angemeldete Benutzer die Daten.>> Hm, wenn ich dem User "anonymous" die Gruppe entferne, kann ich den> Eintrag nicht speichern. Auch kann ich diesen User nicht löschen.> Seltsam.
Danke für den Hinweis, das war mir beim schnellen Test gar nicht
aufgefallen.
Ein alternativer Ansatz wäre eine Gruppe zu erstellen ohne jegliche
Berechtigungen.
Hallo zusammen,
erstmal ein großes Danke an Jan für dieses tolle Projekt.
Ich habe Part-DB 1.0 auf einen Pi4 aufgesetzt und leider noch ein
Problem.
Die Seite baut sich nicht komplett auf und Chrome zeigt mir in der
Konsole einige 404-Fehler an.
Mir ist bereits aufgefallen, dass der Pfad anscheinend nicht passt.
Das Build liegt in var/www/Part-DB-symfony/public/ und nicht wie laut
Fehler angezeigt, in var/www/Part-DB-symfony/build/.
Wie kann ich das Problem lösen, hat jemand eine Idee?
Danke
Gruß
Christian
Ich denke, dass müsste an Punkt 5 in der Anleitung liegen:
If you have put Part-DB into a sub-directory on your server (like
part-db/), you have to edit the file webpack.config.js and uncomment the
lines (remove the // before the lines) .setPublicPath('/part-db/build')
(line 43) and .setManifestKeyPrefix('build/') (line 44). You have to
replace /part-db with your own path on line 44.
Hi Leute,
ich möchte Part-DB-symfony auf einem Strato vServer installieren. Den
Composer habe ich zum laufen bekommen durch aktivieren von noch
fehlenden php-Extensions aber nun hänge ich in der
Installationsanleitung fest am Punkt
> 6. Install client side dependencies and build it: yarn install and yarn build
yarn install schlägt fehl mit der Meldung
> ERROR: [Errno 2] No such file or directory: 'install'
und das selbe passiert bei yarn build
> ERROR: [Errno 2] No such file or directory: 'build'
Dementsprechend kann ich auch das Frontend nicht aufrufen und erhalte
beim Versuch einen Error 500 und die Aufforderung, der Admin sollte yarn
install und yarn build ausführen.
Hat jemand eine Idee wo ich bei der Fehlersuche ansetzen kann und was
mir eventuell noch an Abhängigkeiten fehlt?
Vielen Dank & Gruß,
Peter
Hallo, ich stehe vor dem selben Problem, allerdings auf einem Raspberry
Pi 4. Folgendes habe ich bereits durchgeführt:
Apache 2 installiert -> läuft
PHP 7.4 installiert -> läuft
MariaDB 10 installiert -> läuft (Zugriff über phpMyAdmin)
phpMyAdmin installiert -> läuft (Zugriff auf Datenbank funktioniert)
Im Verzeichnis /var/www/html git clone
https://github.com/Part-DB/Part-DB-symfony.git ausgeführt
In das Verzeichnis Part-DB-symphony gewechselt
.env nach .env.local kopiert
Composer nachinstalliert (sudo apt install composer)
APP_ENV=prod war bereits gesetzt (sudo nano .env.loca)l
composer require symfony/apache-pack ausgeführt
PHP-intl installiert (sudo apt-get install php7.0-intl)
PHP-bcmath installiert (sudo apt install php7.4-bcmath)
composer require ext-intl ausgeführt
Yarn nachinstalliert (sudo apt install yarn)
yarn install ausgeführt -> Fehlermeldung ERROR: [Errno 2] No such file
or directory: 'install'
Hat jemand eine Step-by-step-Anleitung für den Raspberry Pi parat?
Hatte das gleiche Problem mit Yarn, über apt wird nicht die aktuellste
Version geladen, habe yarn dann über npm geladen, damit hat es
funktioniert.
https://classic.yarnpkg.com/lang/en/docs/install/
Hallo, mir gefällt die Idee von Part-DB sehr gut. Allerdings bin ich im
Moment komplett "überfordert" wie ich alles unter Win 10 installiere und
konfiguriere. Gibt es da ein paar Installationstipps für "Dummies". So
wie es ausschaut benötige ich die Docker-Variante unter Windows. Wie
genau gehe ich da vor?
Heinz K. schrieb:> Hallo, mir gefällt die Idee von Part-DB sehr gut. Allerdings bin ich im> Moment komplett "überfordert" wie ich alles unter Win 10 installiere und> konfiguriere. Gibt es da ein paar Installationstipps für "Dummies". So> wie es ausschaut benötige ich die Docker-Variante unter Windows. Wie> genau gehe ich da vor?
Prinzipiell kann man Part-DB auch direkt auf Windows installieren (ohne
docker), aber mit docker ist das deutlich einfacher.
Prinzipiell sollte es reichen Docker für Windows zu installieren (siehe
https://docs.docker.com/desktop/install/windows-install/) und dann den
Anweisungen zur Part-DB Docker installation zu folgen
(https://docs.part-db.de/installation/installation_docker.html).
Daher du legst eine Datei docker-compose.yaml an, mit dem Inhalt der in
der Part-DB Doku vorgegeben ist, öffnest eine Kommandozeile in dem Order
mit der docker-compose.yaml und führtst
1
docker-compose up -d
aus und danach [code]docker exec --user=www-data partdb php bin/console
doctrine:migrations:migrate[code] um die Datenbank anzulegen.
Part-DB sollte dann im Browser unter http://localhost:8080 erreichbar
sein.
Generell ist Part-DB eher als server-Anwendung ausgelegt als als lokales
Programm. Daher konzeptuell ist Part-DB dafür ausgelegt auf einem
Server, der dauerhaft läuft installiert zu sein, und dann greifen
verschiedene Endgeräte und Nutzer per Browser auf Part-DB zu.
Prinzipiell spricht aber auch erstmal nichts dagegen, Part-DB rein lokal
zu nutzen.