Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

rorm: composite unique constraints

Abierto
#186 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust, sql
Área
database

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

needs-triage

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 DeckCollaboratorModel a unique (deck, account) constraint, switch its primary key back to a random uuid (or keep the derived one, decide then), and drop the v3 feature from the root Cargo.toml if nothing else uses it.

Acceptance criteria

  • rorm supports composite unique constraints, including generated migrations
  • DeckCollaboratorModel uses one; uniqueness per deck and Account is unchanged (tests in services/mtg/src/tests/collaborators.rs stay green)
  • uuid v3 feature 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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de myOmikron/code

Todos los issues de myOmikron/code

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.