Rails 5 - Прерывистая ошибка - ActiveRecord :: NotNullViolation (Mysql2 :: Ошибка: поле «create_at» не имеет значения по умолчанию - PullRequest
1 голос
/ 25 февраля 2020

нужна небольшая помощь:)

У нас есть периодическая ошибка, в которой говорится, что у нас есть нулевое нарушение для одного из наших полей: create_at

У нас есть несколько тестовых сред, локально в наших средах разработки мы не получаем эту проблему, но на наших серверах EC2 (построенных с AWS Elasti c Beanstalk) мы получаем проблему периодически. Мы не определили версию по умолчанию для этого, так как в этом нет необходимости, поскольку Rails автоматически заполняет это поле t.timestamps. Также у нас есть такое же поле made_at в других таблицах без каких-либо проблем. Недавно мы обновили с рельсов 4 до рельсов 5 и рельсов 4 все работало.

Мы начали сравнивать настройки среды и обнаружили следующее:

  • Ruby версия 2.6.3 во всех средах
  • Gemfile.lock - все драгоценные камни, совпадающие между средами
  • mysql, локально:

mysql Ver 15.1 Distrib 5.5.64-MariaDB, для Linux (x86_64) с использованием readline 5.1

и EC2 mysql:

mysql Ver 14.14 Distrib 5.5. 62, для Linux (x86_64) с использованием readline 5.1

Прерывистая ошибка:

ActiveRecord :: NotNullViolation (Mysql2 :: Ошибка: поле «create_at» не имеют значение по умолчанию: INSERT INTO versions (updated_at) VALUES ('2020-02-25 10:55:50')) Мы думаем об обновлении mysql - но не уверены, что это проблема. И его нелегко обновить в AWS Elasti c Beanstalk Schema.db

  create_table "versions", force: :cascade do |t|
    t.integer  "p_id",                        limit: 4
    t.string   "name",                              limit: 255
    t.text     "description",                       limit: 16777215
    t.datetime "created_at",                        null: false
    t.datetime "updated_at",                        null: false

Файл миграции:

class CreateVersions < ActiveRecord::Migration
  def change
    create_table :versions do |t|
      t.integer :p_id
      t.string :name
      t.string :description
      t.timestamps
    end
  end
end

Любые идеи о том, как мы можем отладить / исправить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...