sqlalchemy ORM: как дать некоторую низкоуровневую спецификацию? - PullRequest
4 голосов
/ 23 января 2012

Я использую ORM в sqlalchemy .В действительности я использую базу данных MySQL, и я хочу установить конфигурацию таблицы , чтобы MySQL подходил для моего проекта (например, mysql_engine='InnoDB', mysql_charset='utf8' и т. Д.)

Я знаю, что есть подход, использующий выражение SQL, предоставленное SA.Но я предпочитаю использовать интерфейс ORM.Любые идеи?

PS: Как добиться того же эффекта, используя форму 'class mytable' (используя ORM вместо создателя выражений SQL)

1 Ответ

11 голосов
/ 23 января 2012

вы можете передать параметры mysql в определение таблицы в sqlalchemy.

http://www.sqlalchemy.org/docs/dialects/mysql.html#storage-engines

Table('mytable', metadata,
  Column('data', String(32)),
  mysql_engine='InnoDB',
  mysql_charset='utf8'
 )

редактирование: //

если вы используете декларативный слой, вы можете использовать ' table_args ':

class Something(Base):
    __tablename__ = 'something'
    __table_args__ = {'mysql_charset': 'utf8', 'mysql_engine': 'InnoDB'}

http://www.sqlalchemy.org/docs/05/reference/ext/declarative.html#table-configuration

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