新的SQLAlchemy添加记录错误

时间:2011-12-15 05:45:58

标签: sqlalchemy

新手到SQLAlchemy。

我在添加记录时遇到问题。我在教程之后对add进行了建模,该教程传递了多个值(尽管是硬编码值。)附加的是例程和错误。

StackOverflow认为我对代码的解释是'比率已关闭,因此我添加了其他说明,以便我可以提交查询。

import pdb
from table import wrl
from sqlalchemy import or_, and_, desc, asc
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

rs = create_engine('credentials', echo=True)
aws = create_engine('credentials', echo=True)

rs_session = sessionmaker(bind=rs)
aws_session = sessionmaker(bind=aws)

rs = rs_session()
aws = aws_session()

# pdb.set_trace()

y = rs.query(wrl).order_by(wrl.UUID_PK).first()

cat = y.Added_Timestamp    #now we have the oldest record time stamp value

query_string = cat[:8]+"%"      #now we have the oldest record's date i.e. substring(20111215_121212;1;8)

move_me = rs.query(wrl).filter(wrl.Added_Timestamp.like(query_string)).limit(10)
pdb.set_trace()

for x in move_me:
#     pdb.set_trace()
    wrl_rec = wrl(x.UUID_PK,
                x.Web_Request_Headers,
                x.Web_Request_Body,
                x.Current_Machine,
                x.Current_Machine,
                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)
    aws.add(wrl_rec)
    aws.commit()
    print 'added %s ' %  x.UUID_PK


Traceback (most recent call last):
  File "migrate.py", line 47, in <module>
    x.mysql_timestamp)
TypeError: __init__() takes exactly 1 argument (19 given)

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题与SA无关。我猜想你的构造函数(wrl.__init__(self, ...))要么没有定义,要么没有任何位置参数,你试图在wrl_rec中创建这个对象时指定。

所以基本上,错误信息几乎表明你的问题。

在旁注中,order_by(wrl.UUID_PK)是否真的按时间戳返回最旧的记录,因为您的评论下面的几行表示?不知怎的,我非常怀疑。