Почему peewee включает столбец id в запрос выбора mysql?

Я пытаюсь научиться использовать peewee с mysql.

У меня есть существующая база данных на сервере MySQL с существующей таблицей. В настоящее время таблица пуста (сейчас я только тестирую).

>>> db = MySQLDatabase('nhl', user='root', passwd='blahblah')
>>> db.connect()


>>> class schedule(Model):
...     date = DateField()
...     team = CharField()
...     class Meta:
...             database = db

>>> test = schedule.select()
>>> test
 SELECT t1.`id`, t1.`date`, t1.`team` FROM `nhl` AS t1 []
>>> test.get()

Я получаю следующую ошибку:

Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib/python2.6/site-packages/peewee.py", line 1408, in get
    return clone.execute().next()
  File "/usr/lib/python2.6/site-packages/peewee.py", line 1437, in execute
    self._qr = QueryResultWrapper(self.model_class, self._execute(), query_meta)
  File "/usr/lib/python2.6/site-packages/peewee.py", line 1232, in _execute
    return self.database.execute_sql(sql, params, self.require_commit)
  File "/usr/lib/python2.6/site-packages/peewee.py", line 1602, in execute_sql
    res = cursor.execute(sql, params or ())
  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 201, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1054, "Unknown column 't1.id' in 'field list'")

Почему peewee добавляет 'Я бы' столбец в запросе выбора? У меня нет столбца идентификатора в таблице, которая уже существует в базе данных. Я просто хочу работать с существующей таблицей и не зависеть от необходимости создавать ее каждый раз, когда я хочу взаимодействовать с базой данных. Вот где я считаю, что ошибка.

Результат запроса должен быть пустым, поскольку таблица пуста, но, поскольку я учусь, я просто хотел опробовать код. Я ценю вашу помощь.

РЕДАКТИРОВАТЬ

Основываясь на полезных ответах Вубла и Фрэнсиса, я задаюсь вопросом, имеет ли смысл для меня использовать peewee или другой ORM, такой как sqlalchemy. Каковы преимущества использования ORM вместо простого выполнения прямых запросов в python с использованием MySQLdb?

Это то, что я ожидаю сделать:

-автоматическая загрузка данных с различных веб-серверов. Большая часть данных представлена в формате xls или csv. Я могу конвертировать xls в csv, используя пакет xlrd.

-разбор / обработка данных в объектах списка перед вставкой / массовой вставкой в таблицу базы данных mysql.

- запуск сложных запросов для экспорта данных из mysql в python в соответствующие структурированные данные (например, списки) для различных статистических вычислений, которые легче сделать в python вместо mysql. Все, что можно сделать в MySQL, будет сделано там, но я могу запустить сложные регрессии в Python.

- запускать различные графические пакеты с данными, полученными из запросов. Некоторые из них могут включать использование пакета ggplot2 (из R-проекта), который представляет собой расширенный графический пакет. Поэтому я буду привлекать некоторую интеграцию с R / Python.

Учитывая вышесказанное - лучше ли тратить часы на хакерство, изучая ORM / Peewee / SQLAlchemy или придерживаясь прямых запросов mysql с использованием MySQLdb?

Ответы на вопрос(4)

Ваш ответ на вопрос