mirror of https://github.com/go-gorm/gorm.git
commit
80b563e312
6
main.go
6
main.go
|
@ -346,6 +346,12 @@ func (s *DB) DropTableIfExists(value interface{}) *DB {
|
||||||
return s.clone().NewScope(value).dropTableIfExists().db
|
return s.clone().NewScope(value).dropTableIfExists().db
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *DB) HasTable(value interface{}) bool {
|
||||||
|
scope := s.clone().NewScope(value)
|
||||||
|
tableName := scope.TableName()
|
||||||
|
return scope.Dialect().HasTable(scope, tableName)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *DB) AutoMigrate(values ...interface{}) *DB {
|
func (s *DB) AutoMigrate(values ...interface{}) *DB {
|
||||||
db := s.clone()
|
db := s.clone()
|
||||||
for _, value := range values {
|
for _, value := range values {
|
||||||
|
|
19
main_test.go
19
main_test.go
|
@ -4,13 +4,14 @@ import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"database/sql/driver"
|
"database/sql/driver"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
testdb "github.com/erikstmartin/go-testdb"
|
testdb "github.com/erikstmartin/go-testdb"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"github.com/jinzhu/gorm"
|
"github.com/jinzhu/gorm"
|
||||||
"github.com/jinzhu/now"
|
"github.com/jinzhu/now"
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -127,6 +128,22 @@ func (c Cart) TableName() string {
|
||||||
return "shopping_cart"
|
return "shopping_cart"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestHasTable(t *testing.T) {
|
||||||
|
type Foo struct {
|
||||||
|
Id int
|
||||||
|
Stuff string
|
||||||
|
}
|
||||||
|
if table_ok := db.HasTable(&Foo{}); table_ok {
|
||||||
|
t.Errorf("Table should not exist, but does")
|
||||||
|
}
|
||||||
|
if err := db.CreateTable(&Foo{}).Error; err != nil {
|
||||||
|
t.Errorf("Table should be created")
|
||||||
|
}
|
||||||
|
if table_ok := db.HasTable(&Foo{}); !table_ok {
|
||||||
|
t.Errorf("Table should exist, but HasTable informs it does not")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestTableName(t *testing.T) {
|
func TestTableName(t *testing.T) {
|
||||||
DB := DB.Model("")
|
DB := DB.Model("")
|
||||||
if DB.NewScope(Order{}).TableName() != "orders" {
|
if DB.NewScope(Order{}).TableName() != "orders" {
|
||||||
|
|
Loading…
Reference in New Issue