GoogleCloudPlatform / GoogleCloudPlatform/professional-services-data-validator
Misleading "Column DNE in source" exception
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 525
- Forks
- 171
- Merge medio
- 5 d 15 h
- PR fusionados (30 d)
- 4
Descripción
When a table without a primary key is migrated using GCP DMS service a decimal rowid column is added to the target as a primary key. This column does not exist in the source.
If the user runs validation on one of these tables with no primary key then they, quite accurately, get the error:
raise ValueError(f"Column DNE in source: {column}")
ValueError: Column DNE in source: rowid
This is a little misleading though and can cause wasted time trying to understand why the rowid column is part of the --hash=* expansion. It turns out it there because of primary key automation.
It would be better if target primary keys were skipped if the columns are not in the source table. Then the user would see a more easily understood exception:
No primary keys were provided and neither the source or target tables have primary keys. Please include --primary-keys argument
This is a bit of an edge case so not high priority.
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.
Línea de trabajo
Comienza con la ruta de validación que expande --hash=* y procesa las claves primarias del target; después, reproduce el caso de GCP DMS con una columna decimal de rowid que solo existe en el target. El trabajo estará terminado cuando se omita esa columna y la validación informe de que ninguna de las dos tablas tiene claves primarias, con cobertura para este caso límite.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- databases
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100