github.com/dkishere/pop/v6@v6.103.1/dialect.go (about)

     1  package pop
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/dkishere/pop/v6/columns"
     7  	"github.com/gobuffalo/fizz"
     8  )
     9  
    10  type crudable interface {
    11  	SelectOne(store, *Model, Query) error
    12  	SelectMany(store, *Model, Query) error
    13  	Create(store, *Model, columns.Columns) error
    14  	Update(store, *Model, columns.Columns) error
    15  	Destroy(store, *Model) error
    16  	Delete(store, *Model, Query) error
    17  }
    18  
    19  type fizzable interface {
    20  	FizzTranslator() fizz.Translator
    21  }
    22  
    23  type quotable interface {
    24  	Quote(key string) string
    25  }
    26  
    27  type dialect interface {
    28  	crudable
    29  	fizzable
    30  	quotable
    31  	Name() string
    32  	DefaultDriver() string
    33  	URL() string
    34  	MigrationURL() string
    35  	Details() *ConnectionDetails
    36  	TranslateSQL(string) string
    37  	CreateDB() error
    38  	DropDB() error
    39  	DumpSchema(io.Writer) error
    40  	LoadSchema(io.Reader) error
    41  	Lock(func() error) error
    42  	TruncateAll(*Connection) error
    43  }
    44  
    45  type afterOpenable interface {
    46  	AfterOpen(*Connection) error
    47  }