Hallo,
ich habe mir in Python mehrere Skripte geschrieben die Daten aus verschiedenen Quellen (Excel, csv usw.) einliest und dann mittels cheetah weiter verarbeitet (Aufgrund eines Hinweises in einem anderen Thread werde ich mir auch noch mal Jinja2 angucken )
Nun zu meiner eigentlichen Frage:
Ich möchte diese nun Daten dauerhaft in einer Datenbank speichern, dort ändern und weiter verarbeiten. Folgende Vorraussetzungen müssten erfüllt sein:
Muss unter Windows laufen:
Bei uns in der Firma gibts nur Windows-Rechner, daher nichts anderes möglich
Sollte portabel sein:
Ich möchte die Projektmappe inkl. des Programms und der Daten auf einem Stick mitnehmen können und
dann bei einem Kunden weiter arbeiten können. Daher schliesse ich Datenbanken aus, die ich erst installieren muss
Replizierung möglich und sicher:
Da zur gleichen Zeit ein Kollege an dem Projekt weiter arbeiten soll, müsste ich die Daten nachher einfach abgleichen können.
Habe schon sqlite benutzt, da es portabel ist und unter Windows läuft. Ich weiss aber nicht inwieweit ich eine vernünftige
Replizierung hinbekomme. Ausserdem können sich von Projekt zu Projekt die Eingabefelder ändern, ich müsste also ab und zu das Schema anpassen, was natürlich eine Menge Aufwand wäre. Ich habe auch schon an schemalose Datenbanken gedacht (CouchDB und MongoDB). Die scheinen aber weniger für portable Desktopanwendungen geeignet zu sein.
Da ich anschliessend aus den Daten aus der Datenbank auch Dokumente generieren will (evtl. mit DITA) habe ich mich auch schon nach XML-Datenbanken umgeschaut. Leider ist auch dort die Vielfalt sehr gross.
Was ich jetzt brauche, sind ein paar gute Tipps welche Datenbank für meine Anwendung geeignet wäre und eine gute Pythonanbindung hat. Würde mich also über ein paar hilfreiche Hinweise freuen
Auf der Suche nach der richtigen Datenbank
Wieso soll MongoDB nicht portabel sein? Benötigst nur die 3,7 MB (bzw. 2,4MB bei 32bit Version) große mongod.exe!
Wenn du häufige Schema-Wechsel hast, ist das eventuell empfehlenswert. Schau dir aber vorher die Themen zu Durability etc. an.
Wenn du häufige Schema-Wechsel hast, ist das eventuell empfehlenswert. Schau dir aber vorher die Themen zu Durability etc. an.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
Stimmt, MongoDB kann man portabel benutzen. Habe es aber wegen der Durability ausgeschlossen. Obwohl man das sicher auch lösen könnte. Da ich aber mit mehreren Leuten mit den selben Daten arbeiten möchte und es manchmal vorkommt, das nicht alle eine Netzwerkverbindung haben, hätte ich gerne eine Master-Master-Replication. Oder kann ich das auch mit MongoDB anders lösen?
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
Ich habe mir jetzt so einige Dokus, Blogs und andere Beiträge von CouchDB und MongoDB durchgelesen. Da ich häufige Schemawechsel habe, bietet es sich an eine der beiden zu benutzen, da sie schemafrei sind. Wichtig ist eine Automatische Replikation und natürlich will ich unter keinen Umständen Daten verlieren, was eher für CouchDB als für MongoDB spricht.
Wir legen für alle unsere Projekte die wir bearbeiten einen Projektordner an. Und jetzt möchte ich natürlich die Datenbank mit den Projektdaten natürlich auch in einem Unterordner dieses Ordner speichern.
Wenn ich z.B. sqlite benutze kann ich die Datenbank ja einfach als einfache Datei im Projektordner speichern. Bei MongoDB kann ich den Datenbankordner auch per Projekt separat speichern.
Aber wie mache ich das mit CouchDB? Muss ich dann jedesmal die Ini-Datei anpassen
Oder gibt es eine andere Lösung? Vielleich hat ja noch jemand Erfahrung mit anderen Datenbanken?
Wir legen für alle unsere Projekte die wir bearbeiten einen Projektordner an. Und jetzt möchte ich natürlich die Datenbank mit den Projektdaten natürlich auch in einem Unterordner dieses Ordner speichern.
Wenn ich z.B. sqlite benutze kann ich die Datenbank ja einfach als einfache Datei im Projektordner speichern. Bei MongoDB kann ich den Datenbankordner auch per Projekt separat speichern.
Aber wie mache ich das mit CouchDB? Muss ich dann jedesmal die Ini-Datei anpassen
Oder gibt es eine andere Lösung? Vielleich hat ja noch jemand Erfahrung mit anderen Datenbanken?
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
Habe ein paar Seiten im Netz gefunden wo beschrieben wird wie man CouchDB in portablen Anwendungen nutzen kann. Werde das mal weiter verfolgen.
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Plan B: Installier' dir eine Linux-Distro auf einen USB-Stick, auf der auch CouchDB läuft.
Wenn du in der Firma bist, müsstest du das Linux dann nur ins Netz bringen ODER die Speicherdatei von CouchDB auf deinen Windows-Rechner kopieren. Habe ich nie probiert, soll aber problemlos möglich sein, weil es nur eine Datei ist.
Mehrweg-Replikation (oder, wie du sagst Master-Master-Replikation) beherrscht CouchDB ootb, inkl. Konfliktmanangement.
Gruß, noisefloor
Plan B: Installier' dir eine Linux-Distro auf einen USB-Stick, auf der auch CouchDB läuft.
Wenn du in der Firma bist, müsstest du das Linux dann nur ins Netz bringen ODER die Speicherdatei von CouchDB auf deinen Windows-Rechner kopieren. Habe ich nie probiert, soll aber problemlos möglich sein, weil es nur eine Datei ist.
Mehrweg-Replikation (oder, wie du sagst Master-Master-Replikation) beherrscht CouchDB ootb, inkl. Konfliktmanangement.
Gruß, noisefloor
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Wuerdest du die der Fairness halber posten? Fuer Leute mit aehnlichen Problemen und somarlob hat geschrieben:Habe ein paar Seiten im Netz gefunden wo beschrieben wird wie man CouchDB in portablen Anwendungen nutzen kann. Werde das mal weiter verfolgen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Interessante Idee Wird mit meinen Arbeitskollegen aber leider nicht machbar sein. Wenn das nicht Windows + Office usw. ist, dann ist das für die nicht professionell Da bin ich mit meiner Überzeugungsarbeit schon öfter gegen Wände gelaufen.noisefloor hat geschrieben:Hallo,
Plan B: Installier' dir eine Linux-Distro auf einen USB-Stick, auf der auch CouchDB läuft.
...
Aber das ist ein anderes Thema.
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
Hatte eine paar Links gefunden, habe die aber noch nicht näher verfolgt und weiss noch nicht ob es das ist was ich suche.cofi hat geschrieben:Wuerdest du die der Fairness halber posten? Fuer Leute mit aehnlichen Problemen und somarlob hat geschrieben:Habe ein paar Seiten im Netz gefunden wo beschrieben wird wie man CouchDB in portablen Anwendungen nutzen kann. Werde das mal weiter verfolgen.
Werde die Links aber mal posten
Für Linux gibts ein Projekt namens DesktopCouch http://www.freedesktop.org/wiki/Specifi ... sktopcouch
Es gibt aber Leute die das versucht haben nach Windows umzusetzen
http://www.themacaque.com/?p=372
http://www.kryogenix.org/days/2009/12/1 ... windowsmac
Wenn man nach "portable CouchDB" oder "standalone applications CouchDB" googlet findet man auch etwas.
http://couchapp.org/
http://books.couchdb.org/relax/example- ... plications
Aber wie gesagt, ob das das ist was ich suche muss ich erst noch weiter analysieren.
gruss
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
marlob
-------------------------------------
Linux Mint 17 + Python 2.7.6
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
zu den Links:
Desktop Couch ist ein Projekt, bei dem Einstellungen und Benutzerdaten (wie E-Mail Adresse etc.) in CouchDB gespeichert werden und dann auf verschiedenen Desktops = Rechnern global verfügbar sind. Ubuntu nutzt das teilweise.
CouchApp ist ein Python/jQuery "Paket", mit dem man recht komfortable Stand-alone Webapplikation bauen kann, die direkt aus CouchDB laufen.
Mit Portabilität der DB an sich hat das nichts zu tun.
Ich habe gestern Abend mal eine CouchDB DB händisch zwischen meinen Rechnern transferiert. Geht. Unter Linux muss man die Datei "db_name.couch" und das Verzeichnis ".db_name.view" aus / in die entsprechenden Verzeichnisse kopieren (bei Ubuntu: /var/lib/couchdb/0.10.0/" für CouchDB 0.10.0, dann geht's.
Gruß, noisefloor
zu den Links:
Desktop Couch ist ein Projekt, bei dem Einstellungen und Benutzerdaten (wie E-Mail Adresse etc.) in CouchDB gespeichert werden und dann auf verschiedenen Desktops = Rechnern global verfügbar sind. Ubuntu nutzt das teilweise.
CouchApp ist ein Python/jQuery "Paket", mit dem man recht komfortable Stand-alone Webapplikation bauen kann, die direkt aus CouchDB laufen.
Mit Portabilität der DB an sich hat das nichts zu tun.
Ich habe gestern Abend mal eine CouchDB DB händisch zwischen meinen Rechnern transferiert. Geht. Unter Linux muss man die Datei "db_name.couch" und das Verzeichnis ".db_name.view" aus / in die entsprechenden Verzeichnisse kopieren (bei Ubuntu: /var/lib/couchdb/0.10.0/" für CouchDB 0.10.0, dann geht's.
Gruß, noisefloor