Hinzufügen von index-Schlüssel in Grails' Domain
Ich habe versucht, nach dieser Referenz und das ist nun meine Domäne-code:
class SnbrActVector {
long nid
String term
double weight
static mapping = {
version false
nid index:'Nid_Idx'
}
static constraints = {
term(blank:false)
}
}
Was ich will, ist zu tun ist das hinzufügen eines index-Schlüssel für die nid
Spalte. Ich ließ die vorhandene Tabelle und ausführen der app wieder, so dass die Tabelle wird dann neu erstellt. Allerdings, wenn ich überprüfen eine Liste mit den Indizes, die ich nicht sehen kann eine Nid_Idx
nur PRIMARY
. Muss ich manuell den index erstellen und nennen Sie es Nid_idx
in meiner mysql-Datenbank?
InformationsquelleAutor firnnauriel | 2010-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es funktioniert nur bei der Verwendung von
dbCreate = "create"
.Sagen wir, ich habe eine leere Datenbank und meine
dbCreate
eingestellt"update"
. In diesem Fall index wird nicht erstellt.InformationsquelleAutor Tajul islam
Ihre syntax korrekt ist, so könnte es ein anderes problem oder eine Grails bug.
Mein Rat :
grails create-app
) mitSnbrActVector
als einzige Domäne (grails create-domain...
). Kopieren Sie Ihren code innerhalb.dbCreate = "create-drop"
Wenn du einen index erstellt für
nid
Spalte, dann bedeutet es, dass es ein problem in Ihrer Anwendung (könnten Sie nicht verwendet haben, "create-drop" oder etwas anderes)Wenn der index NICHT erstellt => Dies ist ein grails bug und öffnen Sie ein JIRA-issue hier
Es ist kein bug. Ich glaube nicht, dass dbCreate = "update" sollte hinzufügen/entfernen, Datenbank-Indizes der vorhandenen Spalten (könnte zu gefährlich in der Produktion mdoe). Können Sie eine Frage aufwerfen auf JIRA oder fordern Sie es in der grails-forum (bitte den link hier posten). Wie auch immer, Sie haben Ihre Antwort. Im development-Modus, müssen Sie nicht manuell hinzufügen-index (mittels dbCreate = "create"), sondern in der Produktion-Modus, wenn die Datenbank bereits vorhanden ist, müssen Sie es manuell tun
InformationsquelleAutor fabien7474
Müssen Sie möglicherweise den Namen der Spalte, um es zu Feuer z.B.
InformationsquelleAutor leebutts