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

yellow_name yellow_name 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写了一个继承 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 {}

到底是那里的问题。。。
...全文
评论
收藏 已收藏
分享
返回顶部
yellow_name
脚本语言 37,737 成员 34,208 内容