Thank you.

I tried the method described here 
https://bitbucket.org/zzzeek/sqlalchemy/wiki/UsageRecipes/EntityName, my 
tables are defined as modules but I'm unable to understand how he does it

those are my classes


GlobBase.py:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.schema import CreateTable
Base = declarative_base()


from datetime import datetime
from sqlalchemy import *
from GlobBase import Base
from sqlalchemy.orm import relationship


class Messages(Base):
    
    __table_args__ = {  
        'mysql_engine': 'InnoDB',
        'mysql_charset': 'utf8'  
    }
    
    __tablename__ = 'Messages'
    
    id = Column(Integer, autoincrement=True, primary_key=True)
    message_name = Column(String(50))
    protocol_name = Column(String(50))
   
    def get_table_orm_def(self):
        return self.__table__

    def __init__(self, message_name=None, protocol_name=None):
        self.message_name = message_name
        self.protocol_name = protocol_name

    def __repr__(self):
        return "<Messages ('%s %s')>" % (self.message_name, 
self.protocol_name)

tst.py
def map_class_to_some_table(cls, table, entity_name, **kw):
    newcls = type(entity_name, (cls, ), {})
    mapper(newcls, table, **kw)
    return newcls

class Foo(object):
    pass
  
connection = create_engine(connection_line, pool_recycle = pool_time, echo 
= False)
engine = sessionmaker(bind = connection, expire_on_commit=False)()
row = engine.query(Messages).first() 

but i don't understand how to make it work...



On Tuesday, June 2, 2015 at 12:52:22 PM UTC+3, eli rashlin wrote:
>
> Hi,
>
> I have a very strange behavior, I have a program that uses bulk insertions 
> to the DB.
> for some reason the process which iterate on one table and create bulk and 
> insert into another table fails with the error of  'No database selected'.
>
>
> this is how I bind the session:
>
>
> #-------------------------------------------------------------------------------------------------------------------
> # use_db: 
> #        this method will return a session reference
> #         using this DB
> #-------------------------------------------------------------------------------------------------------------------
>     
>     
>     def use_db(self, new_db_name):
>         self.connection.execute("USE %s" % (new_db_name))
>         session_ref = sessionmaker(bind = self.connection, 
> expire_on_commit=False)
>         self.session_cover_tst = session_ref()
>         return self.session_cover_tst
>
>
>
> engine = connection_engine.use_db(db_name)
> count_sig = 
> engine.query(func.count(distinct(signals_table.Signals.sig_value)).label('count_sig')).\
>                                                                     
>  filter(signals_table.Signals.message_id == msg_row.id).\
>                                                                     
>  filter(signals_table.Signals.signal_id == sig_id).\
>                                                                     
>  group_by(signals_table.Signals.signal_id).\
>                                                                     
>  one()[0]
>
>
> now the table Signals is huge (500M records), but the table is indexed and 
> everything is working great for a few rounds and then I'm getting the 
> error  'No database selected'  and it fails...
>
>

-- 
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/d/optout.

Reply via email to