Elixir create_all() 不创建数据库和表
我正在使用 Elixir 0.7.1、Sqlalchemy 0.6beta1 和 MySQLdb 1.2.2。我的模型文件 'model.py' 看起来是这样的:
from elixir import *
from datetime import datetime
class Author:
first_name = Field(Unicode(64))
last_name = Field(Unicode(64))
class Article:
title = Field(Unicode(64))
class Category:
name = Field(Unicode(64))
setup_all()
metadata.bind = "mysql://user:pass@localhost/dbname"
metadata.bind.echo = True
create_all()
metadata.create_all()
在执行了 : python model.py 之后,没有创建任何表,也没有出现错误。以下是发送给 SQL 服务器的命令列表:
2010-03-06 19:50:22,004 INFO sqlalchemy.engine.base.Engine.0x...6c4c SELECT DATABASE()
2010-03-06 19:50:22,004 INFO sqlalchemy.engine.base.Engine.0x...6c4c ()
2010-03-06 19:50:22,005 INFO sqlalchemy.engine.base.Engine.0x...6c4c SHOW VARIABLES LIKE 'character_set%%'
2010-03-06 19:50:22,005 INFO sqlalchemy.engine.base.Engine.0x...6c4c ()
2010-03-06 19:50:22,006 INFO sqlalchemy.engine.base.Engine.0x...6c4c SHOW VARIABLES LIKE 'lower_case_table_names'
2010-03-06 19:50:22,006 INFO sqlalchemy.engine.base.Engine.0x...6c4c ()
2010-03-06 19:50:22,007 INFO sqlalchemy.engine.base.Engine.0x...6c4c SHOW COLLATION
2010-03-06 19:50:22,007 INFO sqlalchemy.engine.base.Engine.0x...6c4c ()
2010-03-06 19:50:22,009 INFO sqlalchemy.engine.base.Engine.0x...6c4c SHOW VARIABLES LIKE 'sql_mode'
2010-03-06 19:50:22,010 INFO sqlalchemy.engine.base.Engine.0x...6c4c ()
我搜索过解决方案,但没有找到。
1 个回答
1
好吧,你需要从实体基类(Entity base class)继承,或者从你选择的其他基类继承,这个基类使用的是EntityMeta这个元类。
class Author(Entity):
first_name = Field(Unicode(64))
last_name = Field(Unicode(64))
class Article(Entity):
title = Field(Unicode(64))
class Category(Entity):
name = Field(Unicode(64))