MCPcopy Create free account
hub / github.com/Permify/permify / MigrateDownTo

Function MigrateDownTo

internal/storage/migration.go:179–208  ·  view source on GitHub ↗

MigrateDownTo undoes database migrations down to a specific version.

(engine, uri string, p int64)

Source from the content-addressed store, hash-verified

177
178// MigrateDownTo undoes database migrations down to a specific version.
179func MigrateDownTo(engine, uri string, p int64) (err error) {
180 switch engine {
181 case database.POSTGRES.String():
182 var db *PQDatabase.Postgres
183 db, err = PQDatabase.New(uri)
184 if err != nil {
185 return err
186 }
187 defer closeDB(db)
188
189 goose.SetTableName(migrationsTable)
190
191 if err = goose.SetDialect(postgresDialect); err != nil {
192 return err
193 }
194
195 goose.SetBaseFS(postgresMigrations)
196 pool := stdlib.OpenDBFromPool(db.WritePool)
197
198 if err = goose.DownTo(pool, postgresMigrationDir, p); err != nil {
199 return err
200 }
201
202 return nil
203 case database.MEMORY.String():
204 return nil
205 default:
206 return fmt.Errorf("%s connection is unsupported", engine)
207 }
208}
209
210// MigrateReset roll back all migrations.
211func MigrateReset(engine, uri string) (err error) {

Callers 1

migrateDownFunction · 0.92

Calls 2

closeDBFunction · 0.85
StringMethod · 0.65

Tested by

no test coverage detected