I'm currently trying to piece together a small Flask application. This is my structure.
run.py
application
__init__.py
database.py
models.py
views.py
database.py
contains just the SQLAlchemy object:
db = SQLAlchemy()
I then import this into my models.py
to create my models. Lastly, inside __init__.py
I import db
from database.py
and do:
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()
However, I cannot create the tables from the models it appears. If I remove db.create_all()
. The application will run with no problems, but obviously the database is not created. When db.create_all()
is present I am given 'RuntimeError: application not registered on db instance and no application bound to current context'.
I'm honestly confused, as before I was having issues just starting the application without creating the database, but moving db
to it's own file seems to somehow have corrected that issue. Now, the only issue remains is actually creating the database.
Can anyone tell me what might be the problem? I'm genuinely stumped.