From 745410dc2f89cfb9b85cce2e805d22752703b43e Mon Sep 17 00:00:00 2001 From: David Genord II Date: Mon, 18 Feb 2019 14:55:42 -0500 Subject: [PATCH 1/6] Allow active record 6.0 --- delayed_job_active_record.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 4972524d..c1775b75 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -1,7 +1,7 @@ # frozen_string_literal: true Gem::Specification.new do |spec| - spec.add_dependency "activerecord", [">= 3.0", "< 5.3"] + spec.add_dependency "activerecord", [">= 3.0", "< 6.1"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] spec.authors = ["Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" From ece98a3454a882fb5dddd7f21cdaa748e19a4fcb Mon Sep 17 00:00:00 2001 From: David Genord II Date: Mon, 18 Feb 2019 14:57:20 -0500 Subject: [PATCH 2/6] Temporarily point at our compatibility branch --- gemfiles/mysql2/master.gemfile | 2 ++ gemfiles/postgresql/master.gemfile | 2 ++ gemfiles/sqlite3/master.gemfile | 2 ++ 3 files changed, 6 insertions(+) diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index 57ac46a5..e410d041 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -20,4 +20,6 @@ group :test do gem "activerecord", github: "rails" end +gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" + gemspec path: "../../" diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index 55b60817..bb0cdbd8 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -20,4 +20,6 @@ group :test do gem "activerecord", github: "rails" end +gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" + gemspec path: "../../" diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index f3bd9885..8481670c 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -20,4 +20,6 @@ group :test do gem "activerecord", github: "rails" end +gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" + gemspec path: "../../" From 1307e3dbc420a75e53a9564c2ec5803ab17512f6 Mon Sep 17 00:00:00 2001 From: David Genord II Date: Mon, 18 Feb 2019 15:17:30 -0500 Subject: [PATCH 3/6] Bump postgres --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index bca7c8ab..40cc3b5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ branches: services: - mysql - postgresql +addons: + postgresql: '9.6' before_script: - mysql -e 'create database delayed_job_test;' - mysql --version From 340add1d3443bd41f8ec06e50d7b104f1a03dc2b Mon Sep 17 00:00:00 2001 From: Petrik Date: Tue, 9 Jul 2019 20:30:51 +0200 Subject: [PATCH 4/6] Fix primary key issue for Rails 3.x and 4.0 and mysql 5.7 MySQL 5.7 no longer supports null default values for the primary key. Override the Native default for primary keys in MySql. https://stackoverflow.com/a/34555109 --- spec/helper.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/helper.rb b/spec/helper.rb index 06acfa35..337771de 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -38,6 +38,17 @@ ActiveRecord::Base.logger = Delayed::Worker.logger ActiveRecord::Migration.verbose = false +# MySQL 5.7 no longer supports null default values for the primary key +# Override the default primary key type in Rails <= 4.0 +# https://stackoverflow.com/a/34555109 +if db_adapter == "mysql2" && + (::ActiveRecord::VERSION::MAJOR == 3 || + (::ActiveRecord::VERSION::MAJOR == 4 && ActiveRecord::VERSION::MINOR == 0)) + class ActiveRecord::ConnectionAdapters::Mysql2Adapter + NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY" + end +end + migration_template = File.open("lib/generators/delayed_job/templates/migration.rb") # need to eval the template with the migration_version intact From 80b373625bf1b1f4f41ce780e9fad250bd61665d Mon Sep 17 00:00:00 2001 From: David Genord II Date: Tue, 20 Aug 2019 11:12:52 -0400 Subject: [PATCH 5/6] Tweak patch for mysql2 primary key For most versions the constant actually lives under `AbstractMysqlAdapter` --- spec/helper.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/spec/helper.rb b/spec/helper.rb index 337771de..0da3ba29 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -41,12 +41,15 @@ # MySQL 5.7 no longer supports null default values for the primary key # Override the default primary key type in Rails <= 4.0 # https://stackoverflow.com/a/34555109 -if db_adapter == "mysql2" && - (::ActiveRecord::VERSION::MAJOR == 3 || - (::ActiveRecord::VERSION::MAJOR == 4 && ActiveRecord::VERSION::MINOR == 0)) - class ActiveRecord::ConnectionAdapters::Mysql2Adapter - NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY" +if db_adapter == "mysql2" + types = if defined?(ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter) + # ActiveRecord 3.2+ + ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES + else + # ActiveRecord < 3.2 + ActiveRecord::ConnectionAdapters::Mysql2Adapter::NATIVE_DATABASE_TYPES end + types[:primary_key] = types[:primary_key].sub(" DEFAULT NULL", "") end migration_template = File.open("lib/generators/delayed_job/templates/migration.rb") From 997b7af2a58c7587394c606e7c2a16d63afd834d Mon Sep 17 00:00:00 2001 From: David Genord II Date: Tue, 20 Aug 2019 11:21:23 -0400 Subject: [PATCH 6/6] Update travis matrix for activerecord 6 --- .travis.yml | 30 +++++++++++++++++------------- gemfiles/mysql2/6-0.gemfile | 23 +++++++++++++++++++++++ gemfiles/mysql2/master.gemfile | 2 +- gemfiles/postgresql/6-0.gemfile | 23 +++++++++++++++++++++++ gemfiles/postgresql/master.gemfile | 2 +- gemfiles/sqlite3/6-0.gemfile | 23 +++++++++++++++++++++++ gemfiles/sqlite3/master.gemfile | 2 +- 7 files changed, 89 insertions(+), 16 deletions(-) create mode 100644 gemfiles/mysql2/6-0.gemfile create mode 100644 gemfiles/postgresql/6-0.gemfile create mode 100644 gemfiles/sqlite3/6-0.gemfile diff --git a/.travis.yml b/.travis.yml index 40cc3b5e..6d6de025 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,12 +20,15 @@ gemfile: # Supported - gemfiles/mysql2/4-2.gemfile - gemfiles/mysql2/5-1.gemfile - gemfiles/mysql2/5-2.gemfile + - gemfiles/mysql2/6-0.gemfile - gemfiles/postgresql/4-2.gemfile - gemfiles/postgresql/5-1.gemfile - gemfiles/postgresql/5-2.gemfile + - gemfiles/postgresql/6-0.gemfile - gemfiles/sqlite3/4-2.gemfile - gemfiles/sqlite3/5-1.gemfile - gemfiles/sqlite3/5-2.gemfile + - gemfiles/sqlite3/6-0.gemfile rvm: # Supported - 2.3.8 - 2.4.6 @@ -43,19 +46,20 @@ matrix: - gemfile: gemfiles/mysql2/master.gemfile # Future - gemfile: gemfiles/postgresql/master.gemfile # Future - gemfile: gemfiles/sqlite3/master.gemfile # Future - # The two combinations below are currently broken. We should stop allowing - # failure as the issue is resolved. See: - # https://github.com/jruby/activerecord-jdbc-adapter/issues/700 - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/mysql2/5-1.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/postgresql/5-1.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/mysql2/5-2.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/postgresql/5-2.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/sqlite3/5-2.gemfile + + exclude: + - gemfile: gemfiles/mysql2/6-0.gemfile + rvm: 2.3.8 + - gemfile: gemfiles/mysql2/6-0.gemfile + rvm: 2.4.6 + - gemfile: gemfiles/postgresql/6-0.gemfile + rvm: 2.3.8 + - gemfile: gemfiles/postgresql/6-0.gemfile + rvm: 2.4.6 + - gemfile: gemfiles/sqlite3/6-0.gemfile + rvm: 2.3.8 + - gemfile: gemfiles/sqlite3/6-0.gemfile + rvm: 2.4.6 include: # diff --git a/gemfiles/mysql2/6-0.gemfile b/gemfiles/mysql2/6-0.gemfile new file mode 100644 index 00000000..531369a3 --- /dev/null +++ b/gemfiles/mysql2/6-0.gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + gem "activerecord-jdbcmysql-adapter" + end + + platforms :ruby, :mswin, :mingw do + gem "mysql2" + end + + gem "coveralls", require: false + gem "rspec", ">= 2.11" + gem "simplecov", require: false + + gem "activerecord", "~> 6.0.0" +end + +gemspec path: "../../" diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index e410d041..df677e1a 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -20,6 +20,6 @@ group :test do gem "activerecord", github: "rails" end -gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" +gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" diff --git a/gemfiles/postgresql/6-0.gemfile b/gemfiles/postgresql/6-0.gemfile new file mode 100644 index 00000000..fa3b4219 --- /dev/null +++ b/gemfiles/postgresql/6-0.gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + gem "activerecord-jdbcpostgresql-adapter" + end + + platforms :ruby, :mswin, :mingw do + gem "pg", "~> 0.18" + end + + gem "coveralls", require: false + gem "rspec", ">= 2.11" + gem "simplecov", require: false + + gem "activerecord", "~> 6.0.0" +end + +gemspec path: "../../" diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index bb0cdbd8..d4113a57 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -20,6 +20,6 @@ group :test do gem "activerecord", github: "rails" end -gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" +gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" diff --git a/gemfiles/sqlite3/6-0.gemfile b/gemfiles/sqlite3/6-0.gemfile new file mode 100644 index 00000000..f0a21d17 --- /dev/null +++ b/gemfiles/sqlite3/6-0.gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + gem "activerecord-jdbcsqlite3-adapter" + end + + platforms :ruby, :mswin, :mingw do + gem "sqlite3", "~> 1.4" + end + + gem "coveralls", require: false + gem "rspec", ">= 2.11" + gem "simplecov", require: false + + gem "activerecord", "~> 6.0.0" +end + +gemspec path: "../../" diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index 8481670c..fd130839 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -20,6 +20,6 @@ group :test do gem "activerecord", github: "rails" end -gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" +gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../"