forked from mirror/gorm
Fix auto migration for sqlite
This commit is contained in:
parent
514a32e547
commit
3264b82368
|
@ -190,8 +190,6 @@ FYI, AutoMigrate will only add new columns, it won't change the current columns'
|
|||
If the table doesn't exist when AutoMigrate is called, gorm will create the table automatically.
|
||||
(the database first needs to be created manually though...).
|
||||
|
||||
(only postgres and mysql supported)
|
||||
|
||||
```go
|
||||
db.AutoMigrate(User{})
|
||||
```
|
||||
|
|
12
sqlite3.go
12
sqlite3.go
|
@ -63,18 +63,12 @@ func (s *sqlite3) Quote(key string) string {
|
|||
func (s *sqlite3) HasTable(scope *Scope, tableName string) bool {
|
||||
var count int
|
||||
newScope := scope.New(nil)
|
||||
newScope.Raw(fmt.Sprintf("SELECT count(*) FROM INFORMATION_SCHEMA.tables where table_name = %v", newScope.AddToVars(tableName)))
|
||||
newScope.Raw(fmt.Sprintf("SELECT count(*) FROM sqlite_master WHERE type='table' AND name=%v", newScope.AddToVars(tableName)))
|
||||
newScope.DB().QueryRow(newScope.Sql, newScope.SqlVars...).Scan(&count)
|
||||
return count > 0
|
||||
}
|
||||
|
||||
func (s *sqlite3) HasColumn(scope *Scope, tableName string, columnName string) bool {
|
||||
var count int
|
||||
newScope := scope.New(nil)
|
||||
newScope.Raw(fmt.Sprintf("SELECT count(*) FROM information_schema.columns WHERE table_name = %v AND column_name = %v",
|
||||
newScope.AddToVars(tableName),
|
||||
newScope.AddToVars(columnName),
|
||||
))
|
||||
newScope.DB().QueryRow(newScope.Sql, newScope.SqlVars...).Scan(&count)
|
||||
return count > 0
|
||||
_, err := scope.DB().Exec(fmt.Sprintf("SELECT %v FROM %v LIMIT 1", columnName, tableName))
|
||||
return err == nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue