I'm not fluent with Elixir, but here is a sample script using
declarative and SQLite (another database that has a very casual notion
of foreign keys) which demonstrates the correct behavior. First
convert this script to Elixir (and also to 0.4 if needed, this script
is made against 0.5) and use with your MySQL database, then work
backwards towards your code to see at what point the "0" starts
popping up.
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('sqlite://', echo=True)
Base = declarative_base()
class PublicationElement(Base):
__tablename__ = 'publication'
publication_id = Column(Integer, primary_key=True)
name = Column(Unicode(255))
class SectionElement(Base):
__tablename__ = 'section'
section_id = Column(Integer, primary_key=True)
publication_id = Column(Integer,
ForeignKey('publication.publication_id'), nullable=False)
publication = relation('PublicationElement', cascade="all, delete-
orphan", backref='sections')
name = Column(Unicode(255))
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
sec1 = SectionElement(name='s1',
publication=PublicationElement(name='p1'))
sess = Session()
sess.add(sec1)
sess.commit()
assert sess.query(SectionElement).one().publication.name == 'p1'
sess.delete(sec1)
sess.commit()
assert engine.execute("select count(1) from publication").scalar() == 0
assert engine.execute("select count(1) from section").scalar() == 0
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---