Flask-SQLAlchemy not creating my tables

浪尽此生 提交于 2019-12-12 03:25:23

问题


SQLAlchemy and for some reason when i run my create_db.py only the migration table is created. I tried it from python terminal with from modules import db,models then running db.create_all() but it still gives the same result.

this is my models.py.

from __init__ import db
from datetime import datetime

class Batch(db.Model):
    __tablename__='batch'
    batch_id = db.Column(db.String, primary_key=True)
    #total = db.Column(db.Integer)
    success = db.Column(db.Integer)
    failure = db.Column(db.Integer)
    folder = db.Column(db.String(15))
    email = db.Column(db.String(20))
    detail = db.relationship('Conversion', backref='details',lazy='dynamic')
    platform = db.relationship('Platform', backref='pub_data', lazy = 'dynamic')

    def __init__(self,batch_id,success,failure,folder,email):
        self.batch_id = batch_id
        self.success = success
        self.failure = failure
        self.folder = folder
        self.email = email

class Conversion(db.Model):
    __tablename__ = 'conversion'
    id = db.Column(db.Integer, primary_key=True)
    batch_id = db.Column(db.String,db.ForeignKey('batch.batch_id'))
    file_names = db.Column(db.String)
    status = db.Column(db.String(6))
    error = db.Column(db.Text)
    res_prop = db.Column(db.Integer)        

    def __init__(self,batch_id,file_names,status,res_prop,error=None):
        self.batch_id = batch_id
        self.file_names = file_names
        self.status = status
        self.error = error
        self.res_prop = res_prop

class Platform(db.Model):
    __tablename__ = 'platform'
    id= db.Column(db.Integer,primary_key=True)
    batch_id = db.Column(db.String, db.ForeignKey('batch.batch_id'))
    title = db.Column(db.String)
    pub_date = db.Column(db.DateTime)

    def __init__(self,batch_id,title):
        self.batch_id = batch_id
        self.title = title
        self.pub_date = datetime()

And here is my create_db.py

from modules import models
from modules import db
from migrate.versioning import api
from modules.default_config import SQLALCHEMY_DATABASE_URI , SQLALCHEMY_MIGRATE_REPO
import os.path

db.create_all()
db.session.commit()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
    api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))

回答1:


on changing

from __init__ import db

to

from modules import db

in models.py it worked. when running flask application from outside package one needs to import everything from the package itself and not the individual modules.



来源:https://stackoverflow.com/questions/27753729/flask-sqlalchemy-not-creating-my-tables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!