Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 8, 2014 20:12:45

uev31
Зарегистрирован: 2014-09-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

SqlAlchemy и дубликаты первичных ключей

Всех приветствую. Есть необходимость в работе с БД (mysql) посредством сабжа и нет полномочий менять структуру БД. В одной из таблиц первичные ключи дублируются по замыслу разработчика . Сгенерирована модель:

class OrderStatusChangelog(DeclarativeBase):
    __tablename__ = 'MC_order_status_changelog'
    __table_args__ = {}
    #column definitions
    orderID = Column(u'orderID', INTEGER(), server_default='true', nullable=False,primary_key=True)
    status_name = Column(u'status_name', VARCHAR(length=255),server_default='true', nullable=True)
    status_change_time = Column(u'status_change_time', DATETIME(),server_default='true', nullable=False)
    status_comment = Column(u'status_comment', TEXT(), server_default='true', nullable=False)
    #relation definitions
.

Сама структура выглядит так:

+——————–+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——————–+————–+——+—–+———+——-+
| orderID | int(11) | YES | | NULL | |
| status_name | varchar(255) | YES | | NULL | |
| status_change_time | datetime | YES | | NULL | |
| status_comment | text | YES | | NULL | |
+——————–+————–+——+—–+———+——-+

Выполняя код: self.session.query(OrderStatusChangelog).select_from(OrderStatusChangelog).all(),
я получаю записей меньше, чем из клиента к СУБД. Подскажите, как можно справиться с этой печалью. Очень хочется получать все сущности. За ранее благодарен.

Офлайн

#2 Сен. 8, 2014 20:59:54

ihor_ua
Зарегистрирован: 2013-03-23
Сообщения: 36
Репутация: +  -2  -
Профиль   Отправить e-mail  

SqlAlchemy и дубликаты первичных ключей

uev31
В одной из таблиц первичные ключи дублируются по замыслу разработчика .
Наркомания на самом деле, хотя может для Mysql это норма.

А чем сгенерирована модель?

Попробуй подключиться к существующей базе http://docs.sqlalchemy.org/en/latest/orm/extensions/automap.html

Офлайн

#3 Сен. 8, 2014 21:12:02

uev31
Зарегистрирован: 2014-09-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

SqlAlchemy и дубликаты первичных ключей

Модель генерировал sqlautocode. Ещё и допилить пришлось.

Офлайн

#4 Сен. 8, 2014 21:23:08

uev31
Зарегистрирован: 2014-09-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

SqlAlchemy и дубликаты первичных ключей

А вообще спасибо за отзыв. Слегка дезиформировал Вас в теме. У таблицы нет ключей… в модели указал в качестве первичного ключа другое поле (можно считать уникальным) и решил вопрос.

Отредактировано uev31 (Сен. 8, 2014 21:23:26)

Офлайн

#5 Сен. 8, 2014 21:37:19

ihor_ua
Зарегистрирован: 2013-03-23
Сообщения: 36
Репутация: +  -2  -
Профиль   Отправить e-mail  

SqlAlchemy и дубликаты первичных ключей

uev31
sqlautocode
оно не обновляется с 2011 надо использовать
https://pypi.python.org/pypi/sqlacodegen
который вот недавно обновился.

Отредактировано ihor_ua (Сен. 8, 2014 21:37:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version