MCPcopy Create free account
hub / github.com/cloudwan/gohan / RegisterTable

Method RegisterTable

db/sql/sql.go:557–581  ·  view source on GitHub ↗

RegisterTable creates table in the db

(s *schema.Schema, cascade, migrate bool)

Source from the content-addressed store, hash-verified

555
556//RegisterTable creates table in the db
557func (db *DB) RegisterTable(s *schema.Schema, cascade, migrate bool) error {
558 if s.IsAbstract() {
559 return nil
560 }
561 tableDef, indices, err := db.AlterTableDef(s, cascade)
562 if !migrate {
563 if tableDef != "" || (indices != nil && len(indices) > 0) {
564 return fmt.Errorf("needs migration, run \"gohan migrate\"")
565 }
566 }
567 if err != nil {
568 tableDef, indices = db.GenTableDef(s, cascade)
569 }
570 if tableDef != "" {
571 if _, err = db.DB.Exec(tableDef); err != nil {
572 return errors.Errorf("error when exec table stmt: '%s': %s", tableDef, err)
573 }
574 }
575 for _, indexSQL := range indices {
576 if _, err = db.DB.Exec(indexSQL); err != nil {
577 return errors.Errorf("error when exec index stmt: '%s': %s", indexSQL, err)
578 }
579 }
580 return err
581}
582
583//DropTable drop table definition
584func (db *DB) DropTable(s *schema.Schema) error {

Callers

nothing calls this directly

Implementers 4

DBdb/sql/sql.go
MockDBdb/mocks/db.go
MockDBMockRecorderdb/mocks/db.go
DBdb/file/file.go

Calls 5

AlterTableDefMethod · 0.95
GenTableDefMethod · 0.95
IsAbstractMethod · 0.80
ErrorfMethod · 0.65
ExecMethod · 0.65

Tested by

no test coverage detected