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. --- .../20180208205311_create_action_mailbox_tables.rb | 17 +++++++++++++++++ .../20180208205311_create_action_mailroom_tables.rb | 14 -------------- actionmailbox/test/dummy/db/schema.rb | 10 +++++----- 3 files changed, 22 insertions(+), 19 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/test') 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