rorm: composite unique constraints
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Read the rorm model and migration documentation, then inspect services/mtg/src/models/deck/db.rs, the root Cargo.toml, and services/mtg/src/tests/collaborators.rs. First determine how rorm represents model constraints and generated migrations; the issue also depends on a rorm release that supports composite uniqueness. Done means generated migrations enforce unique (deck, account), the collaborator tests pass, and the uuid v3 feature is removed if unused.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
rorm has no way to declare a unique constraint over more than one field, and adding one through RawSQL in a migration trips the warning in check-migrations.yaml.
Workaround in use: deck Collaborators (#155) derive their primary key from the pair, collaborator_key(deck, account) = Uuid::new_v3(&deck, account.as_bytes()) in services/mtg/src/models/deck/db.rs, so naming an Account twice on a deck collides on the primary key. This enabled uuid's v3 feature, which pulls md-5 0.10.6 into Cargo.lock next to the existing md-5 0.11.0.
What to build
- In rorm: a composite unique constraint on a model (e.g. a model-level attribute naming the fields), carried through the migration generator.
- Here, once a rorm release has it: give
DeckCollaboratorModela unique(deck, account)constraint, switch its primary key back to a random uuid (or keep the derived one, decide then), and drop thev3feature from the rootCargo.tomlif nothing else uses it.
Acceptance criteria
- rorm supports composite unique constraints, including generated migrations
-
DeckCollaboratorModeluses one; uniqueness per deck and Account is unchanged (tests inservices/mtg/src/tests/collaborators.rsstay green) - uuid
v3feature removed if unused
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 1
- Merge medio
- 10 h 20 min
- PR fusionados (30 d)
- 36
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 myOmikron/code
-
wayfinder:task
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
wayfinder:task
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
myOmikron/code#102 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
mtg: tournament plannerAbiertoready-for-agent
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
Los mantenedores suelen responder en 1 día
-
needs-triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
needs-triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
Todos los issues de myOmikron/code
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
farion1231/cc-switch#8829 ·
Los mantenedores suelen responder en 1 día
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverAbiertodoc-audit enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100