Unverified Commit 13bf718c authored by Yang Luo's avatar Yang Luo Committed by GitHub

Merge pull request #3 from Dasio/master

Create table if not exists already
parents 4b984d20 5058cc54
......@@ -11,10 +11,6 @@ import (
"github.com/mmcloughlin/meow"
)
const (
tableExistsErrorCode = "ERROR #42P07"
)
// CasbinRule represents a rule in Casbin.
type CasbinRule struct {
ID string
......@@ -49,7 +45,7 @@ func NewAdapter(arg interface{}) (*Adapter, error) {
a := &Adapter{db: db}
if err := a.createTable(); err != nil {
if err := a.createTableifNotExists(); err != nil {
return nil, fmt.Errorf("pgadapter.NewAdapter: %v", err)
}
......@@ -60,7 +56,7 @@ func NewAdapter(arg interface{}) (*Adapter, error) {
// creates table from CasbinRule struct if it doesn't exist
func NewAdapterByDB(db *pg.DB) (*Adapter, error) {
a := &Adapter{db: db}
if err := a.createTable(); err != nil {
if err := a.createTableifNotExists(); err != nil {
return nil, fmt.Errorf("pgadapter.NewAdapter: %v", err)
}
return a, nil
......@@ -101,16 +97,14 @@ func (a *Adapter) Close() error {
return nil
}
func (a *Adapter) createTable() error {
func (a *Adapter) createTableifNotExists() error {
err := a.db.CreateTable(&CasbinRule{}, &orm.CreateTableOptions{
Temp: false,
IfNotExists: true,
})
if err != nil {
errorCode := err.Error()[0:12]
if errorCode != tableExistsErrorCode {
return err
}
}
return nil
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment