44eb1e8a22
This commit aims to fix tests which fails on not finding columns such as `expireson`. Adding the underscore that are used when creating the table should fix this. An issue with this is that it must have worked previously without underscores. In that case this might break existing usage. |
||
---|---|---|
.travis.yml | ||
Makefile | ||
README.md | ||
cleanup.go | ||
cleanup_test.go | ||
pgstore.go | ||
pgstore_test.go |
README.md
pgstore
A session store backend for gorilla/sessions - src.
Installation
make get-deps
Documentation
Available on godoc.org.
See http://www.gorillatoolkit.org/pkg/sessions for full documentation on underlying interface.
Example
// Fetch new store.
store := NewPGStore("postgres://user:password@127.0.0.1:5432/database?sslmode=verify-full", []byte("secret-key"))
defer store.Close()
// Run a background goroutine to clean up expired sessions from the database.
defer store.StopCleanup(store.Cleanup(time.Minute * 5))
// Get a session.
session, err = store.Get(req, "session-key")
if err != nil {
log.Error(err.Error())
}
// Add a value.
session.Values["foo"] = "bar"
// Save.
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
// Delete session.
session.Options.MaxAge = -1
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
Thanks
I've stolen, borrowed and gotten inspiration from the other backends available:
Thank you all for sharing your code!
What makes this backend different is that it's for Postgresql and uses the fine datamapper Gorp. Make sure you use a somewhat new codebase of Gorp as it now defaults to text for strings when it used to default to varchar 255. Varchar 255 is unfortunately too small.