-
- Notifications
You must be signed in to change notification settings - Fork 899
Open
Description
Outline
When using the SQLite URI filename format for an in memory database sqlite:///file::memory:?uri=true Flask-SQLAlchemy still creates a database file on disk.
MRE
You can replicate this behaviour locally with the following code:
from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped class Base(DeclarativeBase): pass db = SQLAlchemy(model_class=Base) class User(db.Model): id: Mapped[int] = mapped_column(primary_key=True) username: Mapped[str] = mapped_column(unique=True) email: Mapped[str] app = Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///file::memory:?uri=true" db.init_app(app) with app.app_context(): db.create_all() @app.route("/") def index(): return "<h1>Hello world</h1>"If you start the app with flask run --debug you'll find you have an instance/:memory: file on disk.
Expected behaviour
Running the above snippet does not produce a file on disk.
Environment:
- Python version: Python 3.11.7
- Flask-SQLAlchemy version: 3.1.1
- SQLAlchemy version: 2.0.27
Metadata
Metadata
Assignees
Labels
No labels