Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Alembic升级内存中的sqlite3数据库_Python_Sqlite_Flask_Alembic - Fatal编程技术网

Python 使用Alembic升级内存中的sqlite3数据库

Python 使用Alembic升级内存中的sqlite3数据库,python,sqlite,flask,alembic,Python,Sqlite,Flask,Alembic,我用应用程序工厂创建了一个烧瓶应用程序。在使用pytest进行测试时,我希望使用内存中的sqlite数据库,因为它比使用临时文件快得多。我正在使用Flask Migrate集成Alembic和Flask SQLAlchemy。Flask Migrate使用命令行命令来管理数据库。如何在测试代码中运行迁移来设置数据库 config.py: class DefaultConfig(object): DEBUG = True TESTING = True CSRF_ENABL

我用应用程序工厂创建了一个烧瓶应用程序。在使用pytest进行测试时,我希望使用内存中的sqlite数据库,因为它比使用临时文件快得多。我正在使用Flask Migrate集成Alembic和Flask SQLAlchemy。Flask Migrate使用命令行命令来管理数据库。如何在测试代码中运行迁移来设置数据库

config.py

class DefaultConfig(object):
    DEBUG = True
    TESTING = True

    CSRF_ENABLED = True
    SECRET_KEY = 'this-really-needs-to-change'

    SQLALCHEMY_DATABASE_URI = 'sqlite://'
db = SQLAlchemy()
socketio = SocketIO()
migrate = Migrate()

def create_app(config=None):
    app = Flask(__name__)

    if config is 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
from flask.ext.migrate import upgrade

from . import create_app, db
from .models import User


class AppFixture(object):
    def __init__(self):
        self.app = create_app()
        self.db = db
        with self.app.app_context():
            upgrade()
            self.users = User.query.all()
\uuuu init\uuuuu.py

class DefaultConfig(object):
    DEBUG = True
    TESTING = True

    CSRF_ENABLED = True
    SECRET_KEY = 'this-really-needs-to-change'

    SQLALCHEMY_DATABASE_URI = 'sqlite://'
db = SQLAlchemy()
socketio = SocketIO()
migrate = Migrate()

def create_app(config=None):
    app = Flask(__name__)

    if config is 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
from flask.ext.migrate import upgrade

from . import create_app, db
from .models import User


class AppFixture(object):
    def __init__(self):
        self.app = create_app()
        self.db = db
        with self.app.app_context():
            upgrade()
            self.users = User.query.all()
fixtures.py

class DefaultConfig(object):
    DEBUG = True
    TESTING = True

    CSRF_ENABLED = True
    SECRET_KEY = 'this-really-needs-to-change'

    SQLALCHEMY_DATABASE_URI = 'sqlite://'
db = SQLAlchemy()
socketio = SocketIO()
migrate = Migrate()

def create_app(config=None):
    app = Flask(__name__)

    if config is 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
from flask.ext.migrate import upgrade

from . import create_app, db
from .models import User


class AppFixture(object):
    def __init__(self):
        self.app = create_app()
        self.db = db
        with self.app.app_context():
            upgrade()
            self.users = User.query.all()

调用上面的
upgrade()
不起作用,我得到
OperationalError:(sqlite3.OperationalError)没有这样的表:user[SQL:u'SELECT…
用户处。之后查询
行。

没有足够的代表留下评论,所以我写这篇文章作为回答:在内存DBs中的SQLLite中使用
flask升级
似乎有问题。