Fork of pgstore using sqlx instead of sql.
Go to file
Anton Lindström 44eb1e8a22 Add underscores when querying column names
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.
2015-09-15 11:11:49 +00:00
.travis.yml Update tests to use TravisCI 2015-09-08 14:21:07 +00:00
Makefile Update tests to use TravisCI 2015-09-08 14:21:07 +00:00
README.md Syntax highlighting in README.md 2015-09-13 15:14:50 -04:00
cleanup.go Add underscores when querying column names 2015-09-15 11:11:49 +00:00
cleanup_test.go Add underscores when querying column names 2015-09-15 11:11:49 +00:00
pgstore.go Add underscores when querying column names 2015-09-15 11:11:49 +00:00
pgstore_test.go Update tests to use TravisCI 2015-09-08 14:21:07 +00:00

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.