python - Use Alembic to upgrade in-memory sqlite3 database -


i have flask app created app factory. when testing pytest, want use in-memory sqlite database because faster using temporary files. i'm using flask-migrate integrate alembic , flask-sqlalchemy. flask-migrate uses command line commands manage database. how can run migrations set database within test code?

config.py:

class defaultconfig(object):     debug = true     testing = true      csrf_enabled = true     secret_key = 'this-really-needs-to-change'      sqlalchemy_database_uri = 'sqlite://' 

__init__.py:

db = sqlalchemy() socketio = socketio() migrate = migrate()  def create_app(config=none):     app = flask(__name__)      if config not none:         config_path = os.path.abspath(config)         app.config.from_pyfile(config_path)      elif os.path.isfile(os.path.abspath(configfile)):         app.config.from_pyfile(os.path.abspath(configfile))      else:         app.config.from_object(defaultconfig)      db.init_app(app)     socketio.init_app(app)     migrate.init_app(app, db)      return app 

fixtures.py:

from flask.ext.migrate import upgrade  . import create_app, db .models import user   class appfixture(object):     def __init__(self):         self.app = create_app()         self.db = db         self.app.app_context():             upgrade()             self.users = user.query.all() 

calling upgrade() above doesn't work, operationalerror: (sqlite3.operationalerror) no such table: user [sql: u'select... @ users.query line afterwards.

not enough rep leave comment, i'm writing answer: there seems issue using flask upgrade in sqllite in-memory dbs.


Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

jquery - javascript onscroll fade same class but with different div -