Get it from github: http://github.com/kimxilxyong/gorp
The latest (as of 2015.05.29) upstream changes have been merged, the code is now ready for testers.
If you want to use "Gorp with Indexes" just add index tags to your table struct
(idx_user in this example) and add a import "github.com/kimxilxyong/gorp"
type Post struct {
Id uint64 `db:"notnull, PID, primarykey, autoincrement"`
User string `db:"index:idx_user, size:64"`
PostSub string `db:"index:idx_user, size:128"`
UserIP string `db:"notnull, index:idx_user, size:16"`
BodyType string `db:"notnull, size:64"`
Body string `db:"name:PostBody, size:16384"`
Err error `db:"-"` // ignore this field when storing with gorp
}
Then you only need to call: CreateIndexes
tablename := "posts_index_test"
// SetKeys(true) means we have a auto increment primary key, which
// will get automatically bound to your struct post-insert
table := dbmap.AddTableWithName(post.Post{}, tablename)
table.SetKeys(true, "PID")
// create the table. in a production system you'd generally
// use a migration tool, or create the tables via scripts
if err = dbmap.CreateTablesIfNotExists(); err != nil {
return errors.New("Create tables failed: " + err.Error())
}
// Force create all indexes for this database
if err = dbmap.CreateIndexes(); err != nil {
return errors.New("Create indexes failed: " + err.Error())
}
No comments:
Post a Comment