Seite 1 von 1

sqlalchemy anfänger problem

Verfasst: Montag 16. Januar 2012, 16:35
von thedafelix
Hi,

bin zurzeit am rumspielen mit SQLAlchemy. Hab mich in des Tutorial auf der SQLAlchemy Seite reingelesen und wollte jetzt erstmal in der IDLE anfangen nen bisschen mehr zu üben. Also -> einfache Kontaktverwaltung oder so in die Richtung. Hab schön die Tabellen erstellt, funktioniert auch alles während der laufzeit des Programmes am Datenbankserver oder SQLite Datei kommt jedoch GAR nichts an. Woran könnte des liegen??? Bin iwie verwirrt nach schneller Google suche hat anscheinend sonst anscheinend niemand dieses prob, hab jedenfalls nichts gefunden. Ich erstelle meine Engine und Session so:

Code: Alles auswählen

engine = create_engine("mysql://user:passwort@localhost/db",echo=True)
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()
Base.metadata.bind = engine
Tabellen sind erstellt und auch richtig im DB-Server angelegt, hatte vorher ein "Base.metadata.create_all(engine)" nach den Tabellen Definitionen.

Sitz' ich grad voll auf der leitung???

Danke schonmal

thedafelix

Re: sqlalchemy anfänger problem

Verfasst: Montag 16. Januar 2012, 16:42
von deets
Das ist ja nix, was ein statement gegen die DB absetzt - was erwartest du dann?

Und dass Session.add() sowie Session.commit() aufgerufen werden muessen ist dir bewusst?

Re: sqlalchemy anfänger problem

Verfasst: Montag 16. Januar 2012, 16:53
von thedafelix
Tut mir leid, wollte gerade noch hinzufügen dass ich mir durchaus bewusst bin dass ich session.add(object) und danach session.flush() aufrufen muss, bzw ne query ausführen. Hier mal der Komplette Code

Code: Alles auswählen

engine = create_engine("mysql://user:pw@localhost/db",echo=True)
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()
Base.metadata.bind = engine
#Connection Tables
user_group_association = Table("user_group",Base.metadata,
                         Column("userId",Integer,ForeignKey("users.userId")),
                         Column("groupId",Integer,ForeignKey("groups.groupId"))
                        )

#Main Tables
class User(Base):
    __tablename__ = "users"
    userId = Column(Integer,primary_key=True)
    firstName = Column(String(30))
    lastName = Column(String(40))
    email = Column(String(45))
    groups = relationship("Group",secondary=user_group_association,backref="members")

    def __init__(self,firstName,lastName,email):
        self.firstName = firstName
        self.lastName = lastName
        self.email = email
    
class Group(Base):
    __tablename__ = "groups"
    groupId = Column(Integer,primary_key=True)
    groupName = Column(String(30))

    def __init__(self,groupName):
        self.groupName = groupName
Base.metadata.create_all(bind=engine)
und die Teile in denen ein Objekt hinzugefügt wird

Code: Alles auswählen

new_user = User(firstName,lastName,email)
session.add(new_user)
session.flush()

Re: sqlalchemy anfänger problem

Verfasst: Montag 16. Januar 2012, 16:56
von thedafelix
NEEEIN, session.commit() hat geholfen, ich idiot. Tut mir echt leid, war iwie voll auf session.flush() fixiert - dachte iwie des auf auf SQLAlchemy.com gelesen zu haben. Sorry :oops:
Danke!!! thedafelix