SQLAlchemy oder "normal"?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Mittwoch 28. Mai 2008, 15:41

Hi,
ich beschäftige mich gerade mit MySQL und bin dabei über SQLAlchemy gestoßen. Lohnt sich das oder fahre ich u.U. besser wenn ich normal auf die Datenbank zugreife?

Wo liegen die Vorteile einer ORM?
Zuletzt geändert von burli am Mittwoch 28. Mai 2008, 20:57, insgesamt 1-mal geändert.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Mittwoch 28. Mai 2008, 17:10

Das sind die Vorteile von SQLAlchemy:
http://www.sqlalchemy.org/features.html

Und ob sich das lohnt hängt natürlich von der Anwendung ab.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Donnerstag 29. Mai 2008, 11:26

hm, ich werde es mir mal anschauen. gibt es dazu irgendwo deutsche Texte? Habe bisher nur englische Dokus gefunden
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Donnerstag 29. Mai 2008, 12:12

Wenn du kein englisch kannst wirst du keinen Spass haben. :wink:
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Donnerstag 29. Mai 2008, 12:17

Können schon, aber es könnte besser sein. Ich tu mich halt schwer neue Sachen zu lernen wenn es Texte nur auf englisch gibt. Wenn ich erstmal ne gewisse Grundlage hab und die Begriffe kenne gehts auch im englsichen (deshalb hasse ich zb krampfhafte Übersetzungen von Fachbegriffen)
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Donnerstag 29. Mai 2008, 12:49

Sorry für den Doppelpost, aber ich hab noch ne Frage.
Aktuell ist Version 0.4.6, in den Ubuntu Quellen ist aber noch 0.4.2, 0.5.0 gibt es als Entwicklerversion. Welche davon kann ich guten Gewissens verwenden? Kann ich schon die 0.5.0 verwenden oder ist die noch zu instabil?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 29. Mai 2008, 12:58

Ich würde 0.4.6 nutzen, so ist der deklarative Layer erst in 0.4.4 hinzugekommen. Es spielt aber gut mit easy_install & setuptools zusammen, also gibt es von daher kein zu großes Problem.

Die Ubuntu-Version zu nehmen wäre auch möglich, nur werden da ein paar Dinge fehlen. Die Entwicklerversion würde ich entwicklerversion sein lassen, die bricht wohl ab und zu Kompatibilität. Da würde ich auf das Release warten, von 0.3 auf 0.4 gab es einen Migration Guide, das wirds auch hier geben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Sonntag 1. Juni 2008, 11:18

Ok, die Installation war ja mit easy_install einfach. Elixir hab ich auch gleich mitinstalliert. Jetzt heißt es Doku lesen, verstehen und üben
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Donnerstag 9. Oktober 2008, 18:47

burli hat geschrieben:Hi,
ich beschäftige mich gerade mit MySQL und bin dabei über SQLAlchemy gestoßen. Lohnt sich das oder fahre ich u.U. besser wenn ich normal auf die Datenbank zugreife?

Wo liegen die Vorteile einer ORM?
Mir fallen da auf Anhieb folgende Vorteile ein:

1. Wenn Du schon eine objektorientierte Anwendung hast (inkl. Modelle), dann bietet ein ORM ganz automatisch Objektpersistenz, ohne daß Du Dich mit SQL herumschlagen mußt.

2. Viele Entwickler und User fühlen, daß ihre Daten in einem SQL-Backend sicherer aufgehoben sind, als in der ZODB (egal ob berechtigt oder nicht), möchten aber dennoch objekt-orientierte Persistenz einsetzen.

3. Ein ORM entkoppelt die Anwendung von den Eigenarten des SQL-Backends. Angenommen, Du möchtest später Deine Anwendung von MySQL auf, sagen wir mal, PostgreSQL portieren: hättest Du in SQL codiert, dann müßtest Du verschiedene Stellen anpassen. Ein ORM, das beide DB-Systemen unterstützt kann Dir diese Mühe abnehmen.
lunar

Donnerstag 9. Oktober 2008, 19:39

Leonidas hat geschrieben:Ich würde 0.4.6 nutzen, so ist der deklarative Layer erst in 0.4.4 hinzugekommen. Es spielt aber gut mit easy_install & setuptools zusammen, also gibt es von daher kein zu großes Problem.

Die Ubuntu-Version zu nehmen wäre auch möglich, nur werden da ein paar Dinge fehlen. Die Entwicklerversion würde ich entwicklerversion sein lassen, die bricht wohl ab und zu Kompatibilität. Da würde ich auf das Release warten, von 0.3 auf 0.4 gab es einen Migration Guide, das wirds auch hier geben.
Naja, der Großteil der Änderungen in 0.5 dürfte am Anfang kaum auffallen, allerdings bietet 0.5 an manchen Stellen eine vereinfachte API. Insofern würde ich schon empfehlen, 0.5 einzusetzen, zumal man das auch über den cheeseshop installieren kann.

Sinnvoll wäre nur, diese Eggs in ein eigenes Verzeichnis zu packen. Ich installiere eigene Eggs immer nach "~/lib/python2.5/site-packages/". Dadurch gerät man nicht in Konflikt mit dem Paketmanagement, kann aber trotzdem relativ komfortabel mit "easy_install --prefix ~ sqlalchemy" installieren. Man muss nur $PYTHONPATH entsprechend in der ~/.profile setzen.
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Donnerstag 9. Oktober 2008, 19:45

virtualenv wäre dafür wohl interessant
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Antworten