Thanks very much for pointing to right direction. So all i had to do is
using *sqlalchemy.ext.mutable *to make the *ARRAY *type mutable. I did a
little example code works fine with *psycopg2* -

import sqlalchemy as sa
import sqlalchemy.event as event
import sqlalchemy.orm as orm
import sqlalchemy.ext.mutable as mutable
import sqlalchemy.ext.declarative as declarative


Base = declarative.declarative_base()
engine =
sa.create_engine('postgresql+psycopg2://eg_services:eg.services@localhost:5432/test_eg_services_db',
echo=True)
session = orm.sessionmaker(bind=engine)()


class TestArrayTable(Base):

    __tablename__ = 'test_array_table'
    id = sa.Column(sa.Integer(), primary_key=True)
    values =
sa.Column(mutable.MutableList.as_mutable(sa.ARRAY(sa.Integer())),
nullable=False)

    def __str__(self):
        return '{} : {}'.format(self.id, self.values)

@event.listens_for(TestArrayTable, 'after_insert')
def after_insert(mapper, connection, target):
    print('Adding --> {}'.format(target))

@event.listens_for(TestArrayTable, 'after_update')
def after_update(mapper, connection, target):
    print('Updating --> {}'.format(target))

Base.metadata.create_all(bind=engine)

test = TestArrayTable()
test.values = [x for x in range(5)]
session.add(test)
session.flush()

for x in range(5, 10):
    test.values.append(x)
    session.flush()

Thanks again -
Asif Mahmud Shimon

On Mon, Mar 13, 2017 at 7:12 PM mike bayer <mike...@zzzcomputing.com> wrote:

> ARRAY needs mutability to detect appends:
>
>
> http://docs.sqlalchemy.org/en/latest/orm/extensions/mutable.html?highlight=mutable#sqlalchemy.ext.mutable.MutableList
>
>
>
> On 03/12/2017 06:59 AM, Asif Mahmud wrote:
> > Hi,
> > I'm not sure if it's a bug or I'm missing something. The thing is, I
> > tried to register to /after_update ORM event to watch out for changes
> > made to an existing row entry which has ARRAY /type column in it. But
> > the event isn't firing when I append something to the /ARRAY /.
> > Is this normal behavior or a bug? Other datatypes are firing
> > /after_update/ as documented. If it is normal what should I do to get
> > the /after_update /fire when appending to the /ARRAY /type column.
> > Thanks -
> > Shimon
> >
> >
> > --
> > SQLAlchemy -
> > The Python SQL Toolkit and Object Relational Mapper
> >
> > http://www.sqlalchemy.org/
> >
> > To post example code, please provide an MCVE: Minimal, Complete, and
> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> > description.
> > ---
> > 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
> > <mailto:sqlalchemy+unsubscr...@googlegroups.com>.
> > To post to this group, send email to sqlalchemy@googlegroups.com
> > <mailto:sqlalchemy@googlegroups.com>.
> > Visit this group at https://groups.google.com/group/sqlalchemy.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sqlalchemy/xnwZo-tydUY/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
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 https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to