• 今天遇到的一个bug,折腾了一早上,不过解决了,还是很高兴


    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()))
    model

    出错现象:

    当我python manage.py upgrade的时候

    执行命令的时候会自动生成这样的结构

    解决办法:在没有python manage.py upgrade之前手动解决

     

     然后再次python manage.py upgrade的时候就合适了。。

  • 相关阅读:
    javaweb开发之解决全站乱码
    redis加入开机启动服务
    linux下安装memcache
    关于本地连接虚拟机(centos)里的mongodb失败问题
    oracle存储过程中返回一个程序集
    面向对象进阶(二)----------类的内置方法
    面向对象进阶(一)
    面向对象的三大特性之----------封装
    面向对象的三大特性之----------多态
    面向对象的三大特性之----------继承
  • 原文地址:https://www.cnblogs.com/haiyan123/p/8279191.html
Copyright © 2020-2023  润新知