Новая ошибка добавления записи SQLAlchemy - PullRequest
0 голосов
/ 15 декабря 2011

Новичок в SQLAlchemy.

У меня проблемы с добавлением записи.Я смоделировал добавление после урока, который передает несколько значений (хотя и жестко закодированных значений). В приложении есть подпрограмма и ошибка.

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 голосов
/ 15 декабря 2011

Проблема на самом деле не SA связана. Я предполагаю, что ваш конструктор (wrl.__init__(self, ...)) либо не определен, либо не принимает никаких позиционных аргументов, которые вы пытаетесь указать при создании этого объекта в wrl_rec.

Таким образом, сообщение об ошибке в значительной степени указывает на вашу проблему.

В примечании, действительно ли order_by(wrl.UUID_PK) возвращает самую старую запись по метке времени, как указано в вашем комментарии в нескольких строках ниже? Почему-то я в этом сильно сомневаюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...