From 97825cf6bf883b1b697fb4d394c0fc39df67a4cb Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Wed, 12 Mar 2014 08:33:04 +0700 Subject: [PATCH] Add usage info at migration script generator. Also suppress error at the latest migration script for backward compatibility with existing database, in which open_invitations column wasn't added via migration. --- ...140310104446_add_open_invitation_column.go | 7 +++--- pkg/database/migrate/migration | 22 +++++++++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/pkg/database/migrate/20140310104446_add_open_invitation_column.go b/pkg/database/migrate/20140310104446_add_open_invitation_column.go index 040dd28c9..a98afa5cb 100644 --- a/pkg/database/migrate/20140310104446_add_open_invitation_column.go +++ b/pkg/database/migrate/20140310104446_add_open_invitation_column.go @@ -9,10 +9,9 @@ func (r *rev20140310104446) Revision() int64 { } func (r *rev20140310104446) Up(mg *MigrationDriver) error { - if _, err := mg.AddColumn("settings", "open_invitations BOOLEAN"); err != nil { - return err - } - _, err := mg.Tx.Exec("UPDATE settings SET open_invitations=0 WHERE open_invitations IS NULL") + // Suppress error here for backward compatibility + _, err := mg.AddColumn("settings", "open_invitations BOOLEAN") + _, err = mg.Tx.Exec("UPDATE settings SET open_invitations=0 WHERE open_invitations IS NULL") return err } diff --git a/pkg/database/migrate/migration b/pkg/database/migrate/migration index 3e3a2ff63..5b2f4c402 100755 --- a/pkg/database/migrate/migration +++ b/pkg/database/migrate/migration @@ -9,6 +9,24 @@ titleize() { echo "$1" | sed -r -e "s/-|_/ /g" -e 's/\b(.)/\U\1/g' -e 's/ //g' } +howto() { + echo "Usage:" + echo " ./migration create_sample_table" + echo "" + echo "Above invocation will create a migration script called:" + echo " ${REV}_create_sample_table.go" + echo "You can add your migration step at the Up and Down function" + echo "definition inside the file." + echo "" + echo "Database transaction available through MigrationDriver," + echo "so you can access mg.Tx (sql.Tx instance) directly," + echo "there are also some migration helpers available, see api.go" + echo "for the list of available helpers (Operation interface)." + echo "" +} + +[[ $# -eq 0 ]] && howto && exit 0 + cat > ${REV}_$filename.go << EOF package migrate @@ -20,11 +38,11 @@ func (r *rev$REV) Revision() int64 { ${TAB}return $REV } -func (r *rev$REV) Up(op Operation) error { +func (r *rev$REV) Up(mg *MigrationDriver) error { ${TAB}// Migration steps here } -func (r *rev$REV) Down(op Operation) error { +func (r *rev$REV) Down(mg *MigrationDriver) error { ${TAB}// Revert migration steps here } EOF