python - PostgreSQL table inheritance and moving rows with SQLAlchemy -


in app (python, postgres, sqlalchemy) had 1 large table tasks. app works recent 1k rows in tasks, selecting , updating rows. such frequent operations slow due size of tasks decided split table 2 tasks tasks_all, table tasks inheried tasks_all (postgresql feature).

thus app can work small table fast , when old data, can work large table, includes rows self , it's successor.

here simplified classes tables:

class taskbase:     def __init__(self, id, parent_id, data):         self.id = id         self.parent_id = parent_id         self.data = data      def __repr__(self):         return '<task: {} {}>'.format(self.id, self.data)   class task(taskbase, base):     __tablename__ = 'tasks'      id = column(int, primary_key=true)     parent_id = column(int, foreignkey('tasks.id'))     data = column(text)      children = relationship("task", backref=backref('parent', remote_side=[id]))   class taskall(taskbase, base):     __tablename__ = 'tasks_all'      id = column(int, primary_key=true)     parent_id = column(int, foreignkey('tasks_all.id'))     data = column(text)      children = relationship("taskall", backref=backref('parent', remote_side=[id])) 

to keep tasks table small, need time time move rows tasks tasks_all. , need move them back. following code how tried implement moving.

def move_group(ids):     query = session.query(taskall).filter(taskall.id in ids)     db_session.s.execute(insert(task).from_select((         taskall.id,         taskall.parent_id,         taskall.data,     ), query))     print("insert select successful")     query.delete()     print("delete successful") 

but doesn't work because table tasks_all parent tasks, delete tasks_all deletes tasks. resulting sql query is:

delete tasks_all tasks_all.id in (...); 

but perform operation need, query shuld be

delete tasks_all tasks_all.id in (...); 

as far find sqlalchemy knows nothing only. have use raw sql queries sqla skipping orm part, or maybe there better solution move rows 1 table another?


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -