1、总结出错的问题
当我在用flask做项目的时候,需要创建表,创建表的时候,我用的是Flask-Migrate组件,直接用python manage.py init ,python manage.py migrate ,python manage.py upgrade这样的命令就可以创建表。
我的测试表结构是这样的
1 from sqlalchemy import Column, Integer, String, UniqueConstraint 2 from sqlalchemy_utils import ChoiceType 3 4 from app import db 5 6 7 class UserInfo(db.Model): 8 '''用户表''' 9 __tablename__ = "userinfo" 10 id = Column(Integer(), primary_key=True) 11 name = Column(String(32), index=True, nullable=False) 12 email = Column(String(32), unique=True) 13 __table_args__ = ( 14 UniqueConstraint("id", "name", name="id_username"), # id和username联合唯一 15 { 16 "mysql_engine": "InnoDB", 17 "mysql_charset": "utf8" 18 } 19 ) 20 21 22 class Group(db.Model): 23 __tablename__ = "group" 24 id = Column(Integer(), primary_key=True) 25 name = Column(String(32)) 26 __table_arg__ = { 27 "mysql_engine": "InnoDB", 28 "mysql_charset": "utf8" 29 } 30 31 32 class Xuan(db.Model): 33 __tablename__ = 'xuan' 34 types_choices = ( 35 (1,'欧美'), 36 (2,'日韩'), 37 (3,'老男孩'), 38 ) 39 id = Column(Integer,primary_key=True,autoincrement=True) 40 name = Column(String(64)) 41 types = Column(ChoiceType(types_choices,Integer()))
出错现象:
当我python manage.py upgrade的时候
执行命令的时候会自动生成这样的结构
解决办法:在没有python manage.py upgrade之前手动解决
然后再次python manage.py upgrade的时候就合适了。。