Migrate to DataJoint 2.x: 14 longblob attributes silently corrupt data, 1 attribute fails to declare
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 58/100
Línea de trabajo
Comienza con setup.py y, después, busca en el paquete longblob, attach, dj.schema y las 14 declaraciones afectadas; el issue identifica las asignaciones necesarias de DataJoint 2.x. Lee la guía de migración enlazada e inspecciona tests/ antes de realizar las modificaciones de las definiciones. El trabajo estará terminado cuando todas las declaraciones se puedan importar con DataJoint 2.x, se haya elevado el mínimo de la dependencia y las pruebas cubran los tipos convertidos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This element has not been migrated to DataJoint 2.x. DataJoint no longer supports
pre-2.x, all schemas should be migrated, and a schema is either 2.x or pre-2.x — the
two are not interoperable.
Findings below come from running 2.x's own declaration parser over every attribute
declared in this package, so the counts are exact rather than estimated.
Silent data loss — 14 longblob attributes
Under 2.x a bare longblob is a raw binary column, not a DataJoint blob. Inserting a
numpy array into one stores str(array) — numpy's text repr, with the middle elided
for large arrays — and nothing raises on insert or on fetch. dtype and shape are
gone, and the values are not recoverable from the database afterwards.
This element declares 14 such attributes. The fix is to declare <blob>; the
underlying MySQL column type is longblob either way, so it is a definition edit and
not a table migration — as long as it happens before rows are written under 2.x.
Hard failures at declaration
These raise DataJointError under 2.x, so the affected tables cannot be declared at all:
| spelling | count | |
|---|---|---|
attach |
1 | → <attach> |
Also needed
- Native numeric types (12
int/smallint→int32/int16, 35float→float32). These work correctly under 2.x —
no corruption — but they are native types that warn at declaration and are not
portable across backends. Worth converting while the files are open. dj.schema→dj.Schema(4 call sites).dj.schemawas removed in 2.x;
importing the module raisesAttributeErrorbefore any table is declared.- Raise the DataJoint floor —
setup.pydatajoint>=0.14.6→datajoint>=2.3. The unpinned
floor is why a fresh install resolves 2.x today and hits all of the above.
Testing
This repo has a tests/ directory, which is a real advantage — please extend it to
cover the converted types as part of the migration.
How to do it
Work from Migrate to DataJoint 2.0.
It gives the full legacy → 2.0 type mapping, explains the :<blob>: column-comment
marker that is the mechanism behind the blob problem, and lays out the four phases.
This issue is Phase I — code only, against empty _v2 schemas, with no impact on
existing data. Migrating existing data is Phase III and is tracked separately.
Related: the upstream guard that would have made this loud instead of silent is
https://github.com/datajoint/datajoint-python/issues/1527. The same migration is
underway across the other elements.
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 10
- Forks
- 44
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de datajoint/element-array-ephys
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
datajoint/element-array-ephys#207 ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
datajoint/element-array-ephys#206 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
datajoint/element-array-ephys#154 · 1 comentario ·
-
NWB-export.ipynb errorAbiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
datajoint/element-array-ephys#163 ·
-
Cannot find query.csvAbiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
datajoint/element-array-ephys#162 ·
Todos los issues de datajoint/element-array-ephys
Issues similares
-
[Admin]: Installation failsAbierto🧠 Admin
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 78/100
opencart/opencart#15763 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Add: Chithiram LogoAbiertocheck:passed logos:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 66/100
Los mantenedores suelen responder en 9 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
Los mantenedores suelen responder en 3 días