Try just object RecipeIngredient extends RecipeIngredient with LongKeyedMetaMapper[RecipeIngredient] { override def dbIndexes = UniqueIndex(recipe, order) :: Nil }
Also, there was a bug in index creation. I just checked in a fix. Derek On Sat, Jul 18, 2009 at 11:54 AM, Calen Pennington < calen.penning...@gmail.com> wrote: > So, I'm trying to make use of this code, now that it's in the git repo. > > However, I'm running into the follow issue: > > In my model, I have > > object RecipeIngredient extends RecipeIngredient with > LongKeyedMetaMapper[RecipeIngredient] { > override def dbIndexes = UniqueIndex(new IndexField(recipe), new > IndexField(order)) :: Nil > } > > However, when the schemifier runs, I get a match error: > > scala.MatchError: UniqueIndex(Array(IndexField(NULL), IndexField(0))) > at > net.liftweb.mapper.Schemifier$$anonfun$net$liftweb$mapper$Schemifier$$ensureIndexes$2.apply(Schemifier.scala:266) > at > net.liftweb.mapper.Schemifier$$anonfun$net$liftweb$mapper$Schemifier$$ensureIndexes$2.apply(Schemifier.scala:261) > ... > > It seems that the only way that the UniqueIndex wouldn't match would be if > there was a type inconsistency. However, I can't figure out how that could > be happening. (For reference, I get the same error if I use an Index, rather > than a UniqueIndex). > > Any thoughts? > > Thanks > -Cale > > > On Tue, Jul 14, 2009 at 4:05 PM, Derek Chen-Becker > <dchenbec...@gmail.com>wrote: > >> OK, it's merged. An example usage of the new GenericIndex is: >> >> package com.test.model >> >> import _root_.net.liftweb.mapper._ >> >> class DateItem extends Mapper[DateItem] with IdPK { >> def getSingleton = DateItem >> object timestamp extends MappedDateTime(this) >> object time extends MappedTime(this) >> object date extends MappedDate(this) >> } >> >> object DateItem extends DateItem with MetaMapper[DateItem] { >> override def fieldOrder = date :: time :: timestamp :: Nil >> override def dbIndexes = GenericIndex({ (table,columns) => >> String.format("CREATE UNIQUE INDEX %s ON %s %s", "myindex_" + table + "_" + >> columns.mkString("_"), table, columns.mkString("(", ",", ")"))}, >> IHaveValidatedThisSQL("Derek", "2009-07-13"), date) :: Nil >> } >> >> It's basically up to you to generate the DDL statement based on the table >> and column names. >> >> Derek >> >> >> On Mon, Jul 13, 2009 at 4:11 PM, Derek Chen-Becker <dchenbec...@gmail.com >> > wrote: >> >>> OK, on wip-dcb-unique-indices there's now a GenericIndex that should give >>> you full flexibility to do whatever you want for an index. I'll hold until >>> tomorrow to merge with trunk. >>> >>> Derek >>> >>> >>> On Mon, Jul 13, 2009 at 9:26 AM, Derek Chen-Becker < >>> dchenbec...@gmail.com> wrote: >>> >>>> I'll add a UserIndex type that will let you specify the creation of the >>>> index directly. Unique indices are generally supported across all DBs, >>>> AFAIK, so it makes it more clear to have a specific type. >>>> >>>> Derek >>>> >>>> >>>> On Mon, Jul 13, 2009 at 7:40 AM, Calen Pennington < >>>> calen.penning...@gmail.com> wrote: >>>> >>>>> >>>>> Hey, I'm glad the code could make it in. One comment on your changes: >>>>> It seems to me that using the pattern matching in ensureIndexes puts >>>>> Lift in the position of maintaining support for various DBs, rather >>>>> than letting the client code do it in a project by project basis (for >>>>> instance, the FULLTEXT and SPACIAL index types that I mentioned, that >>>>> are mysql specific.) Is there a reason that you preferred that over >>>>> allowing client code to specify the index type? >>>>> >>>>> -Cale >>>>> >>>>> On Fri, Jul 10, 2009 at 5:32 PM, Derek Chen-Becker< >>>>> dchenbec...@gmail.com> wrote: >>>>> > I've pushed a smaller commit into the wip-dcb-unique-indices branch >>>>> on >>>>> > GitHub that adds a UniqueIndex case class. Conceivably we could add >>>>> other >>>>> > types of indices if there's a need. If no one has any objections to >>>>> what >>>>> > I've added I can merge with trunk on Monday. >>>>> > >>>>> > Derek >>>>> > >>>>> > http://github.com/dpp/liftweb/tree/wip-dcb-unique-indices >>>>> > >>>>> > On Thu, Jul 9, 2009 at 9:44 PM, DFectuoso <santiago1...@gmail.com> >>>>> wrote: >>>>> >> >>>>> >> I for one would like to say: Cool! Thanks! If i need unique indexes >>>>> in >>>>> >> the next couple of weeks i'll get this baby to the war( .war thats >>>>> >> it ) =) >>>>> >> >>>>> >> On Jul 9, 11:30 am, Calen Pennington <calen.penning...@gmail.com> >>>>> >> wrote: >>>>> >> > As mentioned is this issue >>>>> >> > (http://github.com/dpp/liftweb/issues#issue/19), and as came up >>>>> on the >>>>> >> > list recently, Lift currently has no way to specify that a field >>>>> or an >>>>> >> > index be unique. I've coded up a patch that addresses this, and >>>>> could >>>>> >> > also be used for other index types on a project specific basis >>>>> (for >>>>> >> > instance, FULLTEXT or SPATIAL indexes in mysql). >>>>> >> > >>>>> >> > -Cale >>>>> >> > >>>>> >> > 0001-Adding-the-ability-to-create-UNIQUE-indexes-over-sin.patch >>>>> >> > 5KViewDownload >>>>> >> >>>>> >> >>>>> > >>>>> > >>>>> > > >>>>> > >>>>> >>>>> >>>>> >>>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---