github.com/RichardKnop/go-oauth2-server@v1.0.5-0.20201019163316-d02a401490d0/models/migrations.go (about) 1 package models 2 3 import ( 4 "fmt" 5 6 "github.com/RichardKnop/go-oauth2-server/util/migrations" 7 "github.com/jinzhu/gorm" 8 ) 9 10 var ( 11 list = []migrations.MigrationStage{ 12 { 13 Name: "initial", 14 Function: migrate0001, 15 }, 16 } 17 ) 18 19 // MigrateAll executes all migrations 20 func MigrateAll(db *gorm.DB) error { 21 return migrations.Migrate(db, list) 22 } 23 24 func migrate0001(db *gorm.DB, name string) error { 25 //------------- 26 // OAUTH models 27 //------------- 28 29 // Create tables 30 if err := db.CreateTable(new(OauthClient)).Error; err != nil { 31 return fmt.Errorf("Error creating oauth_clients table: %s", err) 32 } 33 if err := db.CreateTable(new(OauthScope)).Error; err != nil { 34 return fmt.Errorf("Error creating oauth_scopes table: %s", err) 35 } 36 if err := db.CreateTable(new(OauthRole)).Error; err != nil { 37 return fmt.Errorf("Error creating oauth_roles table: %s", err) 38 } 39 if err := db.CreateTable(new(OauthUser)).Error; err != nil { 40 return fmt.Errorf("Error creating oauth_users table: %s", err) 41 } 42 if err := db.CreateTable(new(OauthRefreshToken)).Error; err != nil { 43 return fmt.Errorf("Error creating oauth_refresh_tokens table: %s", err) 44 } 45 if err := db.CreateTable(new(OauthAccessToken)).Error; err != nil { 46 return fmt.Errorf("Error creating oauth_access_tokens table: %s", err) 47 } 48 if err := db.CreateTable(new(OauthAuthorizationCode)).Error; err != nil { 49 return fmt.Errorf("Error creating oauth_authorization_codes table: %s", err) 50 } 51 err := db.Model(new(OauthUser)).AddForeignKey( 52 "role_id", "oauth_roles(id)", 53 "RESTRICT", "RESTRICT", 54 ).Error 55 if err != nil { 56 return fmt.Errorf("Error creating foreign key on "+ 57 "oauth_users.role_id for oauth_roles(id): %s", err) 58 } 59 err = db.Model(new(OauthRefreshToken)).AddForeignKey( 60 "client_id", "oauth_clients(id)", 61 "RESTRICT", "RESTRICT", 62 ).Error 63 if err != nil { 64 return fmt.Errorf("Error creating foreign key on "+ 65 "oauth_refresh_tokens.client_id for oauth_clients(id): %s", err) 66 } 67 err = db.Model(new(OauthRefreshToken)).AddForeignKey( 68 "user_id", "oauth_users(id)", 69 "RESTRICT", "RESTRICT", 70 ).Error 71 if err != nil { 72 return fmt.Errorf("Error creating foreign key on "+ 73 "oauth_refresh_tokens.user_id for oauth_users(id): %s", err) 74 } 75 err = db.Model(new(OauthAccessToken)).AddForeignKey( 76 "client_id", "oauth_clients(id)", 77 "RESTRICT", "RESTRICT", 78 ).Error 79 if err != nil { 80 return fmt.Errorf("Error creating foreign key on "+ 81 "oauth_access_tokens.client_id for oauth_clients(id): %s", err) 82 } 83 err = db.Model(new(OauthAccessToken)).AddForeignKey( 84 "user_id", "oauth_users(id)", 85 "RESTRICT", "RESTRICT", 86 ).Error 87 if err != nil { 88 return fmt.Errorf("Error creating foreign key on "+ 89 "oauth_access_tokens.user_id for oauth_users(id): %s", err) 90 } 91 err = db.Model(new(OauthAuthorizationCode)).AddForeignKey( 92 "client_id", "oauth_clients(id)", 93 "RESTRICT", "RESTRICT", 94 ).Error 95 if err != nil { 96 return fmt.Errorf("Error creating foreign key on "+ 97 "oauth_authorization_codes.client_id for oauth_clients(id): %s", err) 98 } 99 err = db.Model(new(OauthAuthorizationCode)).AddForeignKey( 100 "user_id", "oauth_users(id)", 101 "RESTRICT", "RESTRICT", 102 ).Error 103 if err != nil { 104 return fmt.Errorf("Error creating foreign key on "+ 105 "oauth_authorization_codes.user_id for oauth_users(id): %s", err) 106 } 107 108 return nil 109 }