[#2693] removed the implicit autosnapshot migration creation as it is not clear to the users when it happens
This commit is contained in:
		
							parent
							
								
									745b230097
								
							
						
					
					
						commit
						bd95a5b74c
					
				| 
						 | 
					@ -23,7 +23,6 @@ import (
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/AlecAivazis/survey/v2"
 | 
						"github.com/AlecAivazis/survey/v2"
 | 
				
			||||||
	"github.com/pocketbase/dbx"
 | 
					 | 
				
			||||||
	"github.com/pocketbase/pocketbase/core"
 | 
						"github.com/pocketbase/pocketbase/core"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/migrations"
 | 
						"github.com/pocketbase/pocketbase/migrations"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/models"
 | 
						"github.com/pocketbase/pocketbase/models"
 | 
				
			||||||
| 
						 | 
					@ -93,27 +92,6 @@ func Register(app core.App, rootCmd *cobra.Command, config Config) error {
 | 
				
			||||||
		// when migrations are applied on server start
 | 
							// when migrations are applied on server start
 | 
				
			||||||
		p.app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
 | 
							p.app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
 | 
				
			||||||
			p.refreshCachedCollections()
 | 
								p.refreshCachedCollections()
 | 
				
			||||||
 | 
					 | 
				
			||||||
			cachedCollections, _ := p.getCachedCollections()
 | 
					 | 
				
			||||||
			// create a full initial snapshot, if there are no custom
 | 
					 | 
				
			||||||
			// migrations but there is already at least 1 collection created,
 | 
					 | 
				
			||||||
			// to ensure that the automigrate will work with up-to-date collections data
 | 
					 | 
				
			||||||
			if !p.hasCustomMigrations() && len(cachedCollections) > 1 {
 | 
					 | 
				
			||||||
				snapshotFile, err := p.migrateCollectionsHandler(nil, false)
 | 
					 | 
				
			||||||
				if err != nil {
 | 
					 | 
				
			||||||
					return err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				// insert the snapshot migration entry
 | 
					 | 
				
			||||||
				_, insertErr := p.app.Dao().NonconcurrentDB().Insert(migrate.DefaultMigrationsTable, dbx.Params{
 | 
					 | 
				
			||||||
					"file":    snapshotFile,
 | 
					 | 
				
			||||||
					"applied": time.Now().Unix(),
 | 
					 | 
				
			||||||
				}).Execute()
 | 
					 | 
				
			||||||
				if insertErr != nil {
 | 
					 | 
				
			||||||
					return insertErr
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,14 +6,11 @@ import (
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pocketbase/dbx"
 | 
					 | 
				
			||||||
	"github.com/pocketbase/pocketbase/core"
 | 
					 | 
				
			||||||
	"github.com/pocketbase/pocketbase/daos"
 | 
						"github.com/pocketbase/pocketbase/daos"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/models"
 | 
						"github.com/pocketbase/pocketbase/models"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/models/schema"
 | 
						"github.com/pocketbase/pocketbase/models/schema"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/plugins/migratecmd"
 | 
						"github.com/pocketbase/pocketbase/plugins/migratecmd"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/tests"
 | 
						"github.com/pocketbase/pocketbase/tests"
 | 
				
			||||||
	"github.com/pocketbase/pocketbase/tools/migrate"
 | 
					 | 
				
			||||||
	"github.com/pocketbase/pocketbase/tools/types"
 | 
						"github.com/pocketbase/pocketbase/tools/types"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -779,36 +776,3 @@ func TestAutomigrateCollectionNoChanges(t *testing.T) {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
func TestInitialAutoSnapshot(t *testing.T) {
 | 
					 | 
				
			||||||
	app, _ := tests.NewTestApp()
 | 
					 | 
				
			||||||
	defer app.Cleanup()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	migrationsDir := filepath.Join(app.DataDir(), "_test_auto_snapshot_")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	migratecmd.MustRegister(app, nil, migratecmd.Config{
 | 
					 | 
				
			||||||
		TemplateLang: migratecmd.TemplateLangJS,
 | 
					 | 
				
			||||||
		Automigrate:  true,
 | 
					 | 
				
			||||||
		Dir:          migrationsDir,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	app.Bootstrap()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	app.OnBeforeServe().Trigger(&core.ServeEvent{
 | 
					 | 
				
			||||||
		App: app,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var foundFiles []string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	err := app.Dao().NonconcurrentDB().Select("file").
 | 
					 | 
				
			||||||
		From(migrate.DefaultMigrationsTable).
 | 
					 | 
				
			||||||
		Where(dbx.NewExp("file like '%collections_snapshot.js'")).
 | 
					 | 
				
			||||||
		Column(&foundFiles)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatal(err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if len(foundFiles) != 1 {
 | 
					 | 
				
			||||||
		t.Fatalf("Expected 1 collections_snapshot migration, found %v", foundFiles)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue