class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(64), unique=True) # 是不是应该加密下,不能明文存储?应该设置多长的空间? 14.7.18 4:22 by lee password = db.Column(db.String(100)) nickname = db.Column(db.String(64)) school = db.Column(db.String(20)) sex = db.Column(db.String(5)) status = db.Column(db.String(10)) grade = db.Column(db.String(18))
I have a database remains. Then I add model to models.py:
class PubSquare(db.Model): id = db.Column(db.Integer, primary_key=True) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship('User', backref=db.backref('publish')) subject = db.Column(db.String(100)) timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
Then I run migrate script, it call bug:
NoReferencedTableError: Foreign key associated with column 'pub_square.author_id' could not find table 'user' with which to generate a foreign key to target column 'id'
Befor this time, I can run migrate script successfully for serveral times.But this time, when it refer to foreignkey relationship, it doesn't work.
to prove my models code is right, I re-create the database, it works. So, it's the flask-migrate calls to this bug.