From 5f1ca5dadc3a29eb16d8a0de755f52ef44a649df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johnny=20Bergstr=C3=B6m?= Date: Mon, 17 Nov 2014 11:54:21 +0100 Subject: [PATCH] Multiple statements per migration file Makes it possible to run several queries in each file. --- driver/cassandra/cassandra.go | 12 +++++++++++- driver/cassandra/cassandra_test.go | 5 ++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/driver/cassandra/cassandra.go b/driver/cassandra/cassandra.go index 61c9fc35..7d1cbe84 100644 --- a/driver/cassandra/cassandra.go +++ b/driver/cassandra/cassandra.go @@ -3,6 +3,7 @@ package cassandra import ( "net/url" + "strings" "time" "github.com/gocql/gocql" @@ -120,7 +121,16 @@ func (driver *Driver) Migrate(f file.File, pipe chan interface{}) { return } - err = driver.session.Query(string(f.Content)).Exec() + for _, query := range strings.Split(string(f.Content), ";") { + query = strings.TrimSpace(query) + if len(query) == 0 { + continue + } + + if err = driver.session.Query(query).Exec(); err != nil { + return + } + } } func (driver *Driver) Version() (uint64, error) { diff --git a/driver/cassandra/cassandra_test.go b/driver/cassandra/cassandra_test.go index 4fee7cb4..bec0aabf 100644 --- a/driver/cassandra/cassandra_test.go +++ b/driver/cassandra/cassandra_test.go @@ -53,8 +53,11 @@ func TestMigrate(t *testing.T) { Direction: direction.Up, Content: []byte(` CREATE TABLE yolo ( - id varint primary key + id varint primary key, + msg text ); + + CREATE INDEX ON yolo (msg); `), }, {