From d123214401bac911da70c51718a826b576168183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matczuk?= Date: Fri, 30 Apr 2021 11:30:55 +0200 Subject: [PATCH] migrate: refactor examples to use the new FromFS function --- migrate/example/cql/embed.go | 13 ++++++++++++ migrate/example/{migrations => cql}/m1.cql | 0 migrate/example/example_test.go | 23 +++++++++++----------- 3 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 migrate/example/cql/embed.go rename migrate/example/{migrations => cql}/m1.cql (100%) diff --git a/migrate/example/cql/embed.go b/migrate/example/cql/embed.go new file mode 100644 index 0000000..32eb68a --- /dev/null +++ b/migrate/example/cql/embed.go @@ -0,0 +1,13 @@ +// Copyright (C) 2017 ScyllaDB +// Use of this source code is governed by a ALv2-style +// license that can be found in the LICENSE file. + +// +build all integration + +package cql + +import "embed" + +// Files contains *.cql schema migration files. +//go:embed *.cql +var Files embed.FS diff --git a/migrate/example/migrations/m1.cql b/migrate/example/cql/m1.cql similarity index 100% rename from migrate/example/migrations/m1.cql rename to migrate/example/cql/m1.cql diff --git a/migrate/example/example_test.go b/migrate/example/example_test.go index a7b5737..26930bc 100644 --- a/migrate/example/example_test.go +++ b/migrate/example/example_test.go @@ -13,6 +13,7 @@ import ( "github.com/scylladb/gocqlx/v2" "github.com/scylladb/gocqlx/v2/gocqlxtest" "github.com/scylladb/gocqlx/v2/migrate" + "github.com/scylladb/gocqlx/v2/migrate/example/cql" ) // Running examples locally: @@ -21,12 +22,14 @@ import ( func TestExample(t *testing.T) { const ks = "migrate_example" + // Create keyspace cluster := gocqlxtest.CreateCluster() cluster.Keyspace = ks - if err := gocqlxtest.CreateKeyspace(cluster, ks); err != nil { t.Fatal("CreateKeyspace:", err) } + + // Create session using the keyspace session, err := gocqlx.WrapSession(cluster.CreateSession()) if err != nil { t.Fatal("CreateSession:", err) @@ -34,27 +37,25 @@ func TestExample(t *testing.T) { defer session.Close() // Add callback prints - printEvent := func(ctx context.Context, session gocqlx.Session, ev migrate.CallbackEvent, name string) error { + log := func(ctx context.Context, session gocqlx.Session, ev migrate.CallbackEvent, name string) error { t.Log(ev, name) return nil } - reg := migrate.CallbackRegister{} - reg.Add(migrate.BeforeMigration, "m1.cql", printEvent) - reg.Add(migrate.AfterMigration, "m1.cql", printEvent) - reg.Add(migrate.CallComment, "1", printEvent) - reg.Add(migrate.CallComment, "2", printEvent) - reg.Add(migrate.CallComment, "3", printEvent) - + reg.Add(migrate.BeforeMigration, "m1.cql", log) + reg.Add(migrate.AfterMigration, "m1.cql", log) + reg.Add(migrate.CallComment, "1", log) + reg.Add(migrate.CallComment, "2", log) + reg.Add(migrate.CallComment, "3", log) migrate.Callback = reg.Callback // First run prints data - if err := migrate.Migrate(context.Background(), session, "migrations"); err != nil { + if err := migrate.FromFS(context.Background(), session, cql.Files); err != nil { t.Fatal("Migrate:", err) } // Second run skips the processed files - if err := migrate.Migrate(context.Background(), session, "migrations"); err != nil { + if err := migrate.FromFS(context.Background(), session, cql.Files); err != nil { t.Fatal("Migrate:", err) } }