Flask-SQLAlchemy db.create_all() raises RuntimeError working outside of application context

Solution 1
with app.app_context():
    db.create_all()
$ flask shell
>>> db.create_all()
$ python
>>> from project import app, db
>>> app.app_context().push()
>>> db.create_all()
Solution 2
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///project.db"
db = SQLAlchemy()

class Article(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String)
    body = db.Column(db.String)

with app.app_context():
    db.create_all()
$ flask -A example.py --debug run