нужна небольшая помощь:)
У нас есть периодическая ошибка, в которой говорится, что у нас есть нулевое нарушение для одного из наших полей: 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
Любые идеи о том, как мы можем отладить / исправить это?