I'm brand new to sqlalchemy,  and reasonably new to python. I'm working on 
migrating data from one MySQL database to another at Amazon's RDS. 

I have one TinyInt field,'Error' and if the value in that field is 1, then I 
get a warning from MySQLdb : 

/Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg/MySQLdb/cursors.py:206:
 Warning: Incorrect integer value: 'appuser_id' for column 'Error' at row 1
/Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg/MySQLdb/cursors.py:206:
 Warning: Incorrect integer value: '' for column 'Error' at row 1
/Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg/MySQLdb/cursors.py:206:
 Warning: Incorrect integer value: 'TEST-USER-WITH-FULL-PREFS-AND-FAVES' for 
column 'Error' at row 1

The incorrect value being reported is from the varchar User_ID field.  
Everything but the Error field gets migrated fine, including the User_ID field 
which this warning would suggest is in the wrong column. If Error == 0, no 
warning is issued.

Any pointers appreciated.

The structures of the sending and receiving tables are identical. As reported 
by sqlalchemy's reflection tool:

UUID_PK VARCHAR(36)
Web_Request_Headers TEXT
Web_Request_Body TEXT
Current_Machine VARCHAR(40)
HTTP_StatusSent INTEGER(11)
ResponseBody MEDIUMTEXT
Full_Log_Message TEXT
Remote_Address VARCHAR(60)
basic_auth_username VARCHAR(30)
Request_Method VARCHAR(12)
Request_URI VARCHAR(60)
Request_Protocol VARCHAR(12)
Time_To_Process_Request INTEGER(11)
User_ID VARCHAR(36)
Error TINYINT(4)
Added_Timestamp VARCHAR(16)
Processing_Time_Milliseconds INTEGER(11)
mysql_timestamp TIMESTAMP

I have this model.py:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

from sqlalchemy import Column, Integer, String, Text, DateTime, SmallInteger
        
class wrl(Base):
    __tablename__ = 'web_request_log'
    UUID_PK = Column(String(36),primary_key=True)
    Web_Request_Headers =  Column(Text)
    Web_Request_Body  =  Column(Text)
    Current_Machine = Column(String(40))
    HTTP_StatusSent  = Column(Integer)
    ResponseBody = Column(Text)
    Full_Log_Message = Column(Text)
    Remote_Address = Column(String(60))
    basic_auth_username  = Column(String(30))
    Request_Method  = Column(String(12))
    Request_URI  = Column(String(60))
    Request_Protocol  = Column(String(12))
    Time_To_Process_Request  = Column(Integer)
    User_ID  = Column(String(36))
    Error  = Column(SmallInteger)
    Added_Timestamp  = Column(String(16))
    Processing_Time_Milliseconds = Column(Integer)
    mysql_timestamp  = Column(DateTime)

    
    def 
__init__(self,UUID_PK,Web_Request_Headers,Web_Request_Body,Current_Machine,HTTP_StatusSent,ResponseBody,Full_Log_Message,
 Remote_Address,
                
basic_auth_username,Request_Method,Request_URI,Request_Protocol,Time_To_Process_Request,User_ID,Error,Added_Timestamp,Processing_Time_Milliseconds,
                mysql_timestamp):
         self.UUID_PK = UUID_PK
         self.Web_Request_Headers = Web_Request_Headers
         self.Web_Request_Body = Web_Request_Body
         self.Current_Machine = Current_Machine
         self.HTTP_StatusSent = HTTP_StatusSent
         self.ResponseBody = ResponseBody
         self.Full_Log_Message = Full_Log_Message
         self.Remote_Address = Remote_Address
         self.basic_auth_username = basic_auth_username
         self.Request_Method = Request_Method
         self.Request_URI = Request_URI
         self.Request_Protocol = Request_Protocol
         self.Time_To_Process_Request = Time_To_Process_Request
         self.User_ID = User_ID
         self.Error = User_ID
         self.Added_Timestamp = Added_Timestamp
         self.Processing_Time_Milliseconds = Processing_Time_Milliseconds
         self.mysql_timestamp = mysql_timestamp              


And I have this method:  

#login and query stuff, which is working fine, removed;

for x in move_me:
    wrl_rec = wrl(x.UUID_PK,
                x.Web_Request_Headers,
                x.Web_Request_Body,
                x.Current_Machine,
                x.HTTP_StatusSent,
                x.ResponseBody,
                x.Full_Log_Message,
                x.Remote_Address,
                x.basic_auth_username,
                x.Request_Method,
                x.Request_URI,
                x.Request_Protocol,
                x.Time_To_Process_Request,
                x.User_ID,
                x.Error,
                x.Added_Timestamp,
                x.Processing_Time_Milliseconds,
                x.mysql_timestamp)
    try:
        aws.add(wrl_rec)
        print 'added %s' %  x.UUID_PK
    except Exception, E:
        print 'error %s' %  x.UUID_PK
        print E
    else:
        rs.delete(x)
try:
    aws.commit()  # if we can commit the aws push, then it's ok to commit the 
delete on RS
except Exception, E:
    print 'error %s' %  E
else:
    rs.commit()





-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to