Support for multiple statements in Cassandra cql migration files based on semi-colon and newline.

This commit is contained in:
Alan Graham 2018-07-17 15:19:54 +00:00
parent 6bb3e494e5
commit c4b81d1210

View File

@ -155,10 +155,18 @@ func (c *Cassandra) Run(migration io.Reader) error {
}
// run migration
query := string(migr[:])
if err := c.session.Query(query).Exec(); err != nil {
// split query by semi-colon
queries := strings.Split(query, ";\n")
for _, q := range(queries) {
tq := strings.TrimSpace(q)
if (tq == "") { continue }
if err := c.session.Query(tq).Exec(); err != nil {
// TODO: cast to Cassandra error and get line number
return database.Error{OrigErr: err, Err: "migration failed", Query: migr}
}
}
return nil
}