here you go, note MutableList is copied from MutableDict except adapted for lists, works as advertised (you'd need to add other list methods besides append()):
from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.mutable import Mutable from sqlalchemy.dialects.postgresql import ARRAY Base = declarative_base() class MutableList(Mutable, list): def append(self, value): list.append(self, value) self.changed() @classmethod def coerce(cls, key, value): if not isinstance(value, MutableList): if isinstance(value, list): return MutableList(value) return Mutable.coerce(key, value) else: return value class A(Base): __tablename__ = 'a' id = Column(Integer, primary_key=True) data = Column(MutableList.as_mutable(ARRAY(Integer))) engine = create_engine("postgresql://scott:tiger@localhost/test", echo=True) Base.metadata.drop_all(engine) Base.metadata.create_all(engine) s = Session(engine) a1 = A(data=[1, 2, 3]) s.add(a1) s.commit() a1.data.append(4) a1.data.append(5) a1.data.append(6) s.commit() assert a1.data == [1, 2, 3, 4, 5, 6] On Jul 31, 2013, at 10:39 AM, Michael Bayer <mike...@zzzcomputing.com> wrote: > can you pass along a short code example? I can try to edit it. > > > On Jul 31, 2013, at 10:27 AM, notedit <note...@gmail.com> wrote: > >> yes i have readed the doc, but i just can not make it work with ARRAY. >> >> >> 2013/7/31 Michael Bayer <mike...@zzzcomputing.com> >> I dont' have an example specific to ARRAY handy, did you read the >> documentation at >> http://docs.sqlalchemy.org/en/rel_0_8/orm/extensions/mutable.html ? >> >> >> On Jul 31, 2013, at 10:12 AM, notedit <note...@gmail.com> wrote: >> >>> yes i have noticed these. but i still do not know how to use these with >>> array. >>> can you give me some example code? >>> >>> >>> 2013/7/31 Michael Bayer <mike...@zzzcomputing.com> >>> see >>> http://docs.sqlalchemy.org/en/rel_0_8/changelog/migration_08.html#mutabletype >>> >>> >>> On Jul 31, 2013, at 4:02 AM, notedit <note...@gmail.com> wrote: >>> >>>> hi, >>>> >>>> i just come accross this, i use sqlalchemy 0.7.8 before these all work. >>>> when i update to 0.8.2 this does not work. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "sqlalchemy" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to sqlalchemy+unsubscr...@googlegroups.com. >>>> >>>> To post to this group, send email to sqlalchemy@googlegroups.com. >>>> Visit this group at http://groups.google.com/group/sqlalchemy. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sqlalchemy" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to sqlalchemy+unsubscr...@googlegroups.com. >>> To post to this group, send email to sqlalchemy@googlegroups.com. >>> Visit this group at http://groups.google.com/group/sqlalchemy. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy+unsubscr...@googlegroups.com. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >
signature.asc
Description: Message signed with OpenPGP using GPGMail