Flask e SQLAlchemy, aplicativo não registrado na instância
Atualmente, estou tentando reunir um pequeno aplicativo do Flask. Essa é a minha estrutura.
run.py
application
__init__.py
database.py
models.py
views.py
database.py
contém apenas o objeto SQLAlchemy:
db = SQLAlchemy()
Eu então importo isso no meumodels.py
para criar meus modelos. Por fim, por dentro__init__.py
Eu importodb
dedatabase.py
e fazer:
from .database import db
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///application.db'
db.init_app(app)
db.create_all()
No entanto, não consigo criar as tabelas a partir dos modelos que aparecem. Se eu removerdb.create_all()
. O aplicativo será executado sem problemas, mas obviamente o banco de dados não é criado. Quandodb.create_all()
está presente, recebo 'RuntimeError: aplicativo não registrado na instância db e nenhum aplicativo vinculado ao contexto atual'.
Sinceramente, estou confuso, pois antes eu estava tendo problemas apenas iniciando o aplicativo sem criar o banco de dados, mas movendodb
para o seu próprio arquivo parece de alguma forma ter corrigido esse problema. Agora, o único problema que resta é realmente criar o banco de dados.
Alguém pode me dizer qual pode ser o problema? Estou genuinamente perplexo.