1234567891011121314151617181920212223242526272829303132333435363738 |
- package migrations
- import (
- "bufio"
- "strings"
- )
- // Remove all lines after a rollback comment.
- //
- // goose: -- +goose Down
- // sql-migrate: -- +migrate Down
- // tern: ---- create above / drop below ----
- // dbmate: -- migrate:down
- func RemoveRollbackStatements(contents string) string {
- s := bufio.NewScanner(strings.NewReader(contents))
- var lines []string
- for s.Scan() {
- if strings.HasPrefix(s.Text(), "-- +goose Down") {
- break
- }
- if strings.HasPrefix(s.Text(), "-- +migrate Down") {
- break
- }
- if strings.HasPrefix(s.Text(), "---- create above / drop below ----") {
- break
- }
- if strings.HasPrefix(s.Text(), "-- migrate:down") {
- break
- }
- lines = append(lines, s.Text())
- }
- return strings.Join(lines, "\n")
- }
- func IsDown(filename string) bool {
- // Remove golang-migrate rollback files.
- return strings.HasSuffix(filename, ".down.sql")
- }
|