簡體   English   中英

表未遷移-Flask-SQLAlchemy

[英]Table not migrating - Flask-SQLAlchemy

我的models.py文件中包含以下代碼行:

referalls = db.table('referrals',
                 db.Column('referrer', db.String(64), db.ForeignKey('User.email')),
                 db.Column('referral', db.String(64), db.ForeignKey('User.email'))
                 )

這是為我要實現的引薦系統創建多對多關系表。

但是,當我運行migration / upgrade命令時,Alembic並未創建表。

我正在關注Flask-SQLAlchemy官方教程: http : //flask-sqlalchemy.pocoo.org/2.1/models/

為了清楚起見,下面是User類:

class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
    password_hash = db.Column(db.String(128))
    confirmed = db.Column(db.Boolean, default=False)
    name = db.Column(db.String(64))
    location = db.Column(db.String(64))
    about_me = db.Column(db.Text())
    member_since = db.Column(db.DateTime(), default=datetime.utcnow)
    last_seen = db.Column(db.DateTime(), default=datetime.utcnow)
    ...

我相信我的問題可能是以下幾行(從Flask-SQLAlchemy官方文檔中提取):

tags = db.relationship('Tag', secondary=tags,
       backref=db.backref('pages', lazy='dynamic'))

我試過了:

referalls = db.relationship('User', secondary=referalls,
                            backref=db.backref('users', lazy='dynamic'))

但同樣的事情:Alembic無法識別推薦表。

對此表示感謝。

我遇到了同樣的問題,並通過使用繼承db.Model的類解決了問題,而不是按照燒瓶教程的建議聲明表。 當我將所有內容都定義為一個類時,它就起作用了。 可能這是蒸餾器的問題。

嘗試:

class Referalls(db.Model):
    __tablename__ = 'referalls'
    referrer = db.Column(db.String(64), db.ForeignKey('User.email'))
    referral = db.Column(db.String(64), db.ForeignKey('User.email'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM