From 5b2612af54595e754529927c3387f75ec54e3325 Mon Sep 17 00:00:00 2001 From: Matt Baer Date: Tue, 3 Mar 2020 11:26:23 -0600 Subject: [PATCH] Fix `created_at` default val in v4 migration for SQLite This previously used a default timestamp value which caused the migration to fail for SQLite databases. --- db/create.go | 9 +++++++++ migrations/v4.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/db/create.go b/db/create.go index c384778..fc1ab99 100644 --- a/db/create.go +++ b/db/create.go @@ -139,6 +139,15 @@ func (c *Column) SetDefault(value string) *Column { return c } +func (c *Column) SetDefaultCurrentTimestamp() *Column { + def := "NOW()" + if c.Dialect == DialectSQLite { + def = "CURRENT_TIMESTAMP" + } + c.Default = OptionalString{Set: true, Value: def} + return c +} + func (c *Column) SetType(t ColumnType) *Column { c.Type = t return c diff --git a/migrations/v4.go b/migrations/v4.go index c075dd8..93bfbc1 100644 --- a/migrations/v4.go +++ b/migrations/v4.go @@ -29,7 +29,7 @@ func oauth(db *datastore) error { SetIfNotExists(true). Column(dialect.Column("state", wf_db.ColumnTypeVarChar, wf_db.OptionalInt{Set: true, Value: 255})). Column(dialect.Column("used", wf_db.ColumnTypeBool, wf_db.UnsetSize)). - Column(dialect.Column("created_at", wf_db.ColumnTypeDateTime, wf_db.UnsetSize).SetDefault("NOW()")). + Column(dialect.Column("created_at", wf_db.ColumnTypeDateTime, wf_db.UnsetSize).SetDefaultCurrentTimestamp()). UniqueConstraint("state"). ToSQL() if err != nil {