我有一个工作瓶应用程序与几个模型。这个 User
模型如下。。。
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(128), index=True, unique=True)
password_hash = db.Column(db.String(128))
first_name = db.Column(db.String(32))
last_name = db.Column(db.String(32))
bio = db.Column(db.String(255))
patterns = db.relationship('Pattern', backref='user', lazy='dynamic')
现在我想在模型中添加一个新的布尔列。我正在使用mysql作为数据库。我试过以下方法。。。
invited = db.Column(db.Boolean, default=0)
但当我矮小的时候 flask db migrate
我得到以下信息。。。
INFO [alembic.runtime.migration] Context impl MySQLImpl.
我也试过了
from sqlalchemy import BOOLEAN # also with Boolean
...
invited = db.Column(BOOLEAN, default=0) # also with Boolean
但得到同样的错误。阅读mysql文档发现mysql没有布尔类型 TINYINT
. 但是阅读这个github线程,我知道boolean类将变成 TINYINT
基于方言。所以我做了以下。。。
from sqlalchemy.dialect.mysql import BOOLEAN
但我还是得到了同样的错误 flask run migrate
. 似乎alembic看不到模型的变化。
有没有办法在中创建一个布尔字段 mysql
利用 flask-migrate
以及 flask-sqlalchemy
?
1条答案
按热度按时间ioekq8ef1#
试试下面,我假设你没有认出
db.Column(BOOLEAN, default=0)
.我刚刚测试了它和上面的作品,我们能够检测到它。