diff --git a/lib/que/migrations.rb b/lib/que/migrations.rb index 255ae6da..967a0291 100644 --- a/lib/que/migrations.rb +++ b/lib/que/migrations.rb @@ -4,7 +4,7 @@ module Que module Migrations # In order to ship a schema change, add the relevant up and down sql files # to the migrations directory, and bump the version here. - CURRENT_VERSION = 7 + CURRENT_VERSION = 8 class << self def migrate!(version:) diff --git a/lib/que/migrations/8/down.sql b/lib/que/migrations/8/down.sql new file mode 100644 index 00000000..4ae701da --- /dev/null +++ b/lib/que/migrations/8/down.sql @@ -0,0 +1,2 @@ +ALTER TABLE que_jobs +ALTER COLUMN run_at SET DEFAULT now(); diff --git a/lib/que/migrations/8/up.sql b/lib/que/migrations/8/up.sql new file mode 100644 index 00000000..b55e7ab1 --- /dev/null +++ b/lib/que/migrations/8/up.sql @@ -0,0 +1,2 @@ +ALTER TABLE que_jobs +ALTER COLUMN run_at SET DEFAULT clock_timestamp(); diff --git a/spec/que/migrations.current_schema_spec.rb b/spec/que/migrations.current_schema_spec.rb index e4d21384..a6d799b8 100644 --- a/spec/que/migrations.current_schema_spec.rb +++ b/spec/que/migrations.current_schema_spec.rb @@ -115,6 +115,19 @@ def assert_constraint_error(name, &block) end end + describe "que_jobs table column defaults" do + it "should make sure that the default of run_at is clock_timestamp()" do + results = Que.execute (<<~SQL) + SELECT column_default + FROM information_schema.columns + WHERE table_name = 'que_jobs' AND column_name = 'run_at'; + SQL + column_default = results.to_a.first.fetch(:column_default) + + assert_equal column_default, "clock_timestamp()" + end + end + describe "que_lockers table constraints" do let :locker_attrs do { diff --git a/spec/que/migrations.state_trigger_spec.rb b/spec/que/migrations.state_trigger_spec.rb index d7be9269..01d40f30 100644 --- a/spec/que/migrations.state_trigger_spec.rb +++ b/spec/que/migrations.state_trigger_spec.rb @@ -43,7 +43,7 @@ def assert_notification( DB.transaction do result = yield - current_time = DB.get{now.function} + current_time = DB.get{clock_timestamp.function} id ||= result run_at ||= current_time