2017-02-06 1 views
-1

Comment puis-je ajouter la base de données contraignent pour la déclaration suivante écrite dans des rails modèlecomment créer la migration d'ajouter la portée Contraindre unique en quelques colonnes

valident: column_1, unicité: {portée: [: column_2,: column_3] }

Merci à l'avance.

+0

http://stackoverflow.com/a/29961501/4481312 – marmeladze

+0

double possible de ([Valider l'unicité des colonnes multiples] http://stackoverflow.com/questions/ 4870961/validate-unique-de-plusieurs-colonnes) – Iceman

+1

double possible de [une migration pour ajouter contrainte unique à une combinaison de colonnes] (https://stackoverflow.com/questions/3370271/a-migration-to-add- unique-contrainte-à-une-combinaison-de-colonnes) –

Répondre

1

Exécutez la migration suivante:

def change  
    add_index :table_name, [:column1, :column_2,:column_3], unique: true 
end 
+0

Merci @Othmane El Kesri! ajouter ci-dessus restreindre pour ajouter la même combinaison pour column_2 et column_3 mais dans mon cas, je veux aussi combiner avec column_1. Donc, ajouter 'add_index: nom_table, [colonne_1,: colonne_2,: colonne_3], unique: true'. Est-ce correct? – Shambhu

+0

oui, il devrait fonctionner –

+0

j'ai mis à jour ma réponse, s'il vous plaît vérifier si c'est la bonne –