python / python/cpython

Sending the sqlite3 autocommit parameter renders this PRAGMA command a no-op

Aberta
#137,205 13 comentários 0 reações 1 responsável Ver no GitHub

@erlend-aasland já está trabalhando nisso.

Desde 6/8/2025.

docs stdlib topic-sqlite3 type-bug
Linguagem predominante
Python
Estrelas
77.2k
Forks
35.9k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Bug report

Bug description:

root issue is here ( discussed w\ @zzzeek ): https://github.com/sqlalchemy/sqlalchemy/discussions/12767

An explicit emit of the autocommit attribute (=False) makes PRAGMA command not work. Example of the code:

engine = create_async_engine(
    config.SQLITE_URL,
    echo=True,
    connect_args={"autocommit": False},
    poolclass=NullPool
)

@event.listens_for(engine.sync_engine, "connect", named=True)
def enable_foreign_keys(dbapi_connection: AsyncAdapt_aiosqlite_connection, connection_record):
    cursor = dbapi_connection.cursor()
    cursor.execute("PRAGMA foreign_keys=ON")
    cursor.execute("PRAGMA foreign_keys")
    result = cursor.fetchone() 
    print(f"Foreign keys pragma value: {result}")
    cursor.close()
CPython versions tested on:

3.13

Operating systems tested on:

Windows

Linked PRs
  • gh-137505

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.