sqlalchemy写好数据库类,在mysql创建表问题,大佬们

yellow_name 2017-09-08 10:34:17
写了一个继承 declarative_base()的Base类,还有继承Base类的BaseModel类,同步数据库想让自动创建表,但是总是不能,问题出在哪里?

from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('mysql+pymysql://root:123456@localhost:3306/Spider', echo=True)
Base = declarative_base()


class BaseModel(Base):
__abstract__ = True
__metadata__ = MetaData(bind=engine)
__table_arhs__ = {
'mysql_engine': 'InnoDb',
'mysql_charset': 'utf8'
}

if __name__ == '__main__':
BaseModel.__metadata__.create_all()

其中一个表model类如下:

from sqlalchemy import Column
from sqlalchemy.dialects.mysql import INTEGER, VARCHAR

from common.db import BaseModel


class CityModel(BaseModel):
__tablename__ = 'city'

id = Column(INTEGER, primary_key=True)
name = Column(VARCHAR(64))

打印出来的数据库命令信息如下

2017-09-08 22:24:15,737 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'sql_mode'
2017-09-08 22:24:15,737 INFO sqlalchemy.engine.base.Engine {}
2017-09-08 22:24:15,750 INFO sqlalchemy.engine.base.Engine SELECT DATABASE()
2017-09-08 22:24:15,750 INFO sqlalchemy.engine.base.Engine {}
2017-09-08 22:24:15,751 INFO sqlalchemy.engine.base.Engine show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
2017-09-08 22:24:15,752 INFO sqlalchemy.engine.base.Engine {}
2017-09-08 22:24:15,753 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
2017-09-08 22:24:15,754 INFO sqlalchemy.engine.base.Engine {}
2017-09-08 22:24:15,754 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
2017-09-08 22:24:15,754 INFO sqlalchemy.engine.base.Engine {}
2017-09-08 22:24:15,755 INFO sqlalchemy.engine.base.Engine SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
2017-09-08 22:24:15,755 INFO sqlalchemy.engine.base.Engine {}

到底是那里的问题。。。
...全文
198 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧