SQLAlchemy 2.0 cleanup: drop_all bind, dead metadata.bind, sql_query read-only
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
- Domínio
- databases, documentation
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.
- Bug:
base.metadata.drop_all()is called with nobindincreate_database(both the Felis and non-Felis branches). In SQLAlchemy 2.0,bindis a required argument (MetaData.drop_all(self, bind, tables=None, checkfirst=True)), socreate_database(..., drop_tables=True)raisesTypeError: MetaData.drop_all() missing 1 required positional argument: 'bind'. No test currently coversdrop_tables=True. - Dead code:
base.metadata.bind = engineinload_connectiondoes nothing in SQLAlchemy 2.0, since bound metadata was removed. - Docs:
sql_queryusesengine.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 fordrop_tables=True - Remove
metadata.bind = engine - Document
sql_queryas 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
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
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de astrodbtoolkit/AstrodbKit
-
Nulls and load_tableTalvez já em andamento @dr-rodriguez assumiu há 11 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
astrodbtoolkit/AstrodbKit#109 · 1 comentário · 1 responsável ·
-
Remove `wcs1d_multispec` reader.Talvez livre de novo @dr-rodriguez assumiu há 347 dias e não há nenhum pull request aberto. Aberta
astrodbtoolkit/AstrodbKit#105 · 1 responsável ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
astrodbtoolkit/AstrodbKit#104 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 42/100
astrodbtoolkit/AstrodbKit#101 · 1 comentário ·
-
enhancement good first issue
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
astrodbtoolkit/AstrodbKit#100 · 1 comentário ·
Todas as issues de astrodbtoolkit/AstrodbKit
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
conda-forge/conda-forge-bot#7025 ·
Mantenedores costumam responder em até 1 dia
-
area:ci
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 74/100
catincloud-labs/dagster-dex#149 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
home-assistant/core#188424 ·
Mantenedores costumam responder em até 1 dia
-
Review backlog (docs-currency): README 'CI run' link lands on a run whose overall badge is cancelledAbertaagent/reviewer needs-kind needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
projectbluefin/utah#880 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
redis/memtier_benchmark#850 ·
Mantenedores costumam responder em até 1 dia