我的sqlite数据库在哪里?

时间:2014-02-18 06:36:12

标签: sqlite sqlalchemy flask flask-sqlalchemy

这可能是一个愚蠢的问题,但我对SQLAlchemy如何使用我的Flask应用程序使用的实际数据库感到困惑。我有一个python文件,models.py,它定义了一个SQLAlchemy数据库模式,然后我有这部分代码为它创建了数据库

if __name__ == '__main__':
    from datetime import timedelta

    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker

    engine = create_engine('sqlite://', echo=True)

    Base.metadata.create_all(engine)
    Session = sessionmaker(bind=engine)
    session = Session()

    # Add a sample user
    user = User(name='Philip House', password="test")
    session.add(user)
    session.commit()

我运行该文件并且工作正常,但现在我很困惑,因为数据库会发生什么。我可以在另一个应用程序中访问它吗?我也听说它可能只是在内存中,如果是这样的话,如何将它作为永久数据库文件,我可以使用我的应用程序?

同样在我的应用程序中,这是我在配置文件中引用我的sqlite数据库的方式:

PWD = os.path.abspath(os.curdir)
DEBUG=True
SQLALCHEMY_DATABASE_URI = 'sqlite:///{}/arkaios.db'.format(PWD)

如果可能有任何帮助,我不知道。

谢谢!

1 个答案:

答案 0 :(得分:3)

以下是使用SQLite连接SQLAlchemy的docs

正如您所猜测的,当您使用sqlite://作为连接字符串时,实际上是在内存中创建SQLite数据库。如果您使用sqlite:///{}/arkaios.db'.format(PWD),则会在当前目录中创建一个新数据库。如果您打算这样做,以便可以从其他应用程序访问该数据库,那么您应该从配置文件中导入连接字符串,而不是使用sqlite://