Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

SQLAlchemy 2.0 cleanup: drop_all bind, dead metadata.bind, sql_query read-only

Aberta Para iniciantes
#112 0 comentários 0 reações 0 responsáveis Ver no GitHub

@dr-rodriguez já está trabalhando nisso.

Desde 13/10/2026.

  • #113 de @dr-rodriguez — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
78/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python, sqlalchemy

Direção de pesquisa

Comece pela função create_database, que chama base.metadata.drop_all() sem bind nos dois ramos, Felis e não Felis, depois em load_connection, onde está base.metadata.bind = engine, e em sql_query. Reproduza o bug chamando create_database(..., drop_tables=True) para ver o TypeError. Está pronto quando essa chamada roda sem erro, um novo teste cobre drop_tables=True, a linha morta metadata.bind foi removida e sql_query está documentada como somente leitura.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Issue authored by Claude (Opus 5.5).

I found these while auditing for #103.

  1. Bug: base.metadata.drop_all() is called with no bind in create_database (both the Felis and non-Felis branches). In SQLAlchemy 2.0, bind is a required argument (MetaData.drop_all(self, bind, tables=None, checkfirst=True)), so create_database(..., drop_tables=True) raises TypeError: MetaData.drop_all() missing 1 required positional argument: 'bind'. No test currently covers drop_tables=True.
  2. Dead code: base.metadata.bind = engine in load_connection does nothing in SQLAlchemy 2.0, since bound metadata was removed.
  3. Docs: sql_query uses engine.connect() without a commit. Any INSERT/UPDATE/DELETE sent through it is silently rolled back, so it should be documented as read-only.

Proposed fixes:

  • drop_all() → drop_all(bind=engine) (2 places), plus a test for drop_tables=True
  • Remove metadata.bind = engine
  • Document sql_query as read-only (docstring + docs)
Linguagem predominante
Python
Estrelas
12
Forks
5
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

  • Sem Dockerfile nem arquivo Docker Compose
  • Sem modelo de pull request
  • Sem 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.

Mais de astrodbtoolkit/AstrodbKit

Todas as issues de astrodbtoolkit/AstrodbKit

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

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