Frasco SQLAlchemy db.create_all () no está creando la base de datos

Parece que no puedo entender por qué mi llamada a db.create_all () no está funcionando.

Tengo un paquete de aplicación con el siguiente init:

from flask import Flask from config import config from flask.ext.sqlalchemy import SQLAlchemy # create the database object db = SQLAlchemy() # this function is the application factory def create_app(environment): app = Flask(__name__) app.config.from_object(config[environment]) db.init_app(app) from bp_root import bp_root from bp_aws import bp_aws app.register_blueprint(bp_root, url_prefix='/') app.register_blueprint(bp_aws, url_prefix='/aws') return app 

Entonces tengo models.py dentro del paquete de la aplicación:

 from datetime import datetime from . import db class MyTestClass(db.Model): __tablename__ = 'mytesttable' id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(64), nullable=False, unique=True, index=True) username = db.Column(db.String(64), nullable=False, unique=True, index=True) is_admin = db.Column(db.Boolean) password_hash = db.Column(db.String(128)) location = db.Column(db.String(64)) member_since = db.Column(db.DateTime, default=datetime.utcnow) bio = db.Column(db.Text()) def __init__(self, email, username): self.email = email self.username = username def __repr__(self): return '' % self.username 

app.config contiene, entre otras cosas, lo siguiente:

 'SQLALCHEMY_DATABASE_URL': 'sqlite:////Users/xxxxx/projects/yyyyy/data-dev.sqlite' 

Luego, si enciendo mi shell interactivo, puede ver que los objetos existen de manera apropiada y parece que llamar a db.create_all () funciona, pero no se crea una base de datos:

 $ ./manage.py shell >>> from app import db >>> from app import models >>> app  >>> db  >>> models  >>> dir(models) ['MyTestClass', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'datetime', 'db'] >>> db.create_all() >>> 

¿Alguna idea sobre por qué la base de datos no se está creando?

La configuración debe ser SQLALCHEMY_DATABASE_ URI , no URL . Puedes ver que la db no tiene el uri correcto cuando ejecutaste esta línea:

 >>> db  

Muestra que Flask-SQLAlchemy se estableció de forma predeterminada en una base de datos sqlite en memoria. Cambia la configuración y funcionará.