123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package migrations
- import (
- "testing"
- "github.com/google/go-cmp/cmp"
- )
- const inputGoose = `
- -- +goose Up
- ALTER TABLE archived_jobs ADD COLUMN expires_at TIMESTAMP WITH TIME ZONE;
- -- +goose Down
- ALTER TABLE archived_jobs DROP COLUMN expires_at;
- `
- const outputGoose = `
- -- +goose Up
- ALTER TABLE archived_jobs ADD COLUMN expires_at TIMESTAMP WITH TIME ZONE;
- `
- const inputMigrate = `
- -- +migrate Up
- -- SQL in section 'Up' is executed when this migration is applied
- CREATE TABLE people (id int);
- -- +migrate Down
- -- SQL section 'Down' is executed when this migration is rolled back
- DROP TABLE people;
- `
- const outputMigrate = `
- -- +migrate Up
- -- SQL in section 'Up' is executed when this migration is applied
- CREATE TABLE people (id int);
- `
- const inputTern = `
- -- Write your migrate up statements here
- ALTER TABLE todo RENAME COLUMN done TO is_done;
- ---- create above / drop below ----
- ALTER TABLE todo RENAME COLUMN is_done TO done;
- `
- const outputTern = `
- -- Write your migrate up statements here
- ALTER TABLE todo RENAME COLUMN done TO is_done;`
- const inputDbmate = `
- -- migrate:up
- CREATE TABLE foo (bar int);
- -- migrate:down
- DROP TABLE foo;`
- const outputDbmate = `
- -- migrate:up
- CREATE TABLE foo (bar int);`
- func TestRemoveRollback(t *testing.T) {
- if diff := cmp.Diff(outputGoose, RemoveRollbackStatements(inputGoose)); diff != "" {
- t.Errorf("goose migration mismatch:\n%s", diff)
- }
- if diff := cmp.Diff(outputMigrate, RemoveRollbackStatements(inputMigrate)); diff != "" {
- t.Errorf("sql-migrate migration mismatch:\n%s", diff)
- }
- if diff := cmp.Diff(outputTern, RemoveRollbackStatements(inputTern)); diff != "" {
- t.Errorf("tern migration mismatch:\n%s", diff)
- }
- if diff := cmp.Diff(outputDbmate, RemoveRollbackStatements(inputDbmate)); diff != "" {
- t.Errorf("dbmate migration mismatch:\n%s", diff)
- }
- }
- func TestRemoveGolangMigrateRollback(t *testing.T) {
- filenames := map[string]bool{
- // make sure we let through golang-migrate files that aren't rollbacks
- "migrations/1.up.sql": false,
- // make sure we let through other sql files
- "migrations/2.sql": false,
- "migrations/foo.sql": false,
- "migrations/1.down.sql": true,
- }
- for filename, want := range filenames {
- got := IsDown(filename)
- if diff := cmp.Diff(want, got); diff != "" {
- t.Errorf("IsDown mismatch: %s\n %s", filename, diff)
- }
- }
- }
|