@@ -104,24 +104,29 @@ func dropSpannerDB(ctx context.Context, uri ParsedURI) error {
104104//go:embed migrations/*.sql
105105var migrationsFs embed.FS
106106
107- func RunMigrations (ctx context. Context , uri string ) error {
108- sourceDriver , err := iofs . New ( migrationsFs , "migrations" )
107+ func RunMigrations (uri string ) error {
108+ m , err := getMigrateInstance ( uri )
109109 if err != nil {
110110 return err
111111 }
112+ return m .Up ()
113+ }
114+
115+ func getMigrateInstance (uri string ) (* migrate.Migrate , error ) {
116+ sourceDriver , err := iofs .New (migrationsFs , "migrations" )
117+ if err != nil {
118+ return nil , err
119+ }
112120 s := & migrate_spanner.Spanner {}
113121 dbDriver , err := s .Open ("spanner://" + uri + "?x-clean-statements=true" )
114122 if err != nil {
115- return err
123+ return nil , err
116124 }
117125 m , err := migrate .NewWithInstance ("iofs" , sourceDriver , "spanner" , dbDriver )
118- if err == migrate .ErrNoChange {
119- // This is not a problem.
120- return nil
121- } else if err != nil {
122- return err
126+ if err != nil {
127+ return nil , err
123128 }
124- return m . Up ()
129+ return m , nil
125130}
126131
127132func NewTransientDB (t * testing.T ) (* spanner.Client , context.Context ) {
@@ -162,7 +167,7 @@ func NewTransientDB(t *testing.T) (*spanner.Client, context.Context) {
162167 t .Fatal (err )
163168 }
164169 t .Cleanup (client .Close )
165- err = RunMigrations (ctx , uri .Full )
170+ err = RunMigrations (uri .Full )
166171 if err != nil {
167172 t .Fatal (err )
168173 }
0 commit comments