From db077e8090623801721d574263c57b2641698e7e Mon Sep 17 00:00:00 2001 From: Ryuta Kamizono Date: Wed, 2 Jan 2019 10:07:04 +0900 Subject: Allow using Action Mailbox on MySQL 5.5 Active Record still support MySQL 5.5 which doesn't support datetime with precision. https://github.com/rails/rails/blob/9e34df00039d63b5672315419e76f06f80ef3dc4/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L99-L101 So we should check `supports_datetime_with_precision?` on the connection. --- .../20180917164000_create_action_mailbox_tables.rb | 7 +++++-- .../20180208205311_create_action_mailbox_tables.rb | 17 +++++++++++++++++ .../20180208205311_create_action_mailroom_tables.rb | 14 -------------- actionmailbox/test/dummy/db/schema.rb | 10 +++++----- 4 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailbox_tables.rb delete mode 100644 actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailroom_tables.rb (limited to 'actionmailbox') diff --git a/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb b/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb index 550cc0e4e5..89ab66c1a9 100644 --- a/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb +++ b/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb @@ -5,8 +5,11 @@ class CreateActionMailboxTables < ActiveRecord::Migration[6.0] t.string :message_id, null: false t.string :message_checksum, null: false - t.datetime :created_at, precision: 6, null: false - t.datetime :updated_at, precision: 6, null: false + if supports_datetime_with_precision? + t.timestamps precision: 6 + else + t.timestamps + end t.index [ :message_id, :message_checksum ], name: "index_action_mailbox_inbound_emails_uniqueness", unique: true end diff --git a/actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailbox_tables.rb b/actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailbox_tables.rb new file mode 100644 index 0000000000..89ab66c1a9 --- /dev/null +++ b/actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailbox_tables.rb @@ -0,0 +1,17 @@ +class CreateActionMailboxTables < ActiveRecord::Migration[6.0] + def change + create_table :action_mailbox_inbound_emails do |t| + t.integer :status, default: 0, null: false + t.string :message_id, null: false + t.string :message_checksum, null: false + + if supports_datetime_with_precision? + t.timestamps precision: 6 + else + t.timestamps + end + + t.index [ :message_id, :message_checksum ], name: "index_action_mailbox_inbound_emails_uniqueness", unique: true + end + end +end diff --git a/actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailroom_tables.rb b/actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailroom_tables.rb deleted file mode 100644 index 550cc0e4e5..0000000000 --- a/actionmailbox/test/dummy/db/migrate/20180208205311_create_action_mailroom_tables.rb +++ /dev/null @@ -1,14 +0,0 @@ -class CreateActionMailboxTables < ActiveRecord::Migration[6.0] - def change - create_table :action_mailbox_inbound_emails do |t| - t.integer :status, default: 0, null: false - t.string :message_id, null: false - t.string :message_checksum, null: false - - t.datetime :created_at, precision: 6, null: false - t.datetime :updated_at, precision: 6, null: false - - t.index [ :message_id, :message_checksum ], name: "index_action_mailbox_inbound_emails_uniqueness", unique: true - end - end -end diff --git a/actionmailbox/test/dummy/db/schema.rb b/actionmailbox/test/dummy/db/schema.rb index 8a11c3fbe1..10d4111a89 100644 --- a/actionmailbox/test/dummy/db/schema.rb +++ b/actionmailbox/test/dummy/db/schema.rb @@ -2,11 +2,11 @@ # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # -# Note that this schema.rb definition is the authoritative source for your -# database schema. If you need to create the application database on another -# system, you should be using db:schema:load, not running all the migrations -# from scratch. The latter is a flawed and unsustainable approach (the more migrations -# you'll amass, the slower it'll run and the greater likelihood for issues). +# This file is the source Rails uses to define your schema when running `rails +# db:schema:load`. When creating a new database, `rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. # # It's strongly recommended that you check this file into your version control system. -- cgit v1.2.3