Rails 4.2 и Postgres: изменения миграции базы данных schema.rb - null: false удалено из отметок времени - PullRequest
0 голосов
/ 28 сентября 2018

Я следовал инструкциям по установке для проекта Rails, над которым мне поручено работать.Однако после создания базы данных и выполнения миграций с bundle exec значение db/schema.rb изменится.Основное изменение заключается в том, что временные метки created_at и updated_at теряют ограничение null: false.Например:

-    t.datetime "created_at", null: false
-    t.datetime "updated_at", null: false
+    t.datetime "created_at"
+    t.datetime "updated_at"

Проект является Rails 4.2 и Ruby 2.4.1.
Однако изначально он был написан с использованием Rails 3.2 и Ruby 1.9.2, поэтому существует вероятность того, что часть старого кода/ config в игре (?)
Я использую PostgreSQL: 'pg', '~> 0.17'.

Итак: кто-нибудь знает, почему null: false покинул схему?
Я бы очень хотелЯ хотел бы сохранить ограничения null: false, и, думаю, я могу добавить их обратно в миграцию, но я очень озадачен, почему ограничения исчезли из схемы.

отредактировано для добавления :
- В миграциях, где определены t.timestamps, нет ограничения null: false
- Нет нулевого ограничения наполя в фактической базе данных.
Могли ли более ранние версии ActiveRecord добавить нулевое ограничение по умолчанию?

Я искал ответы, но не нашел много. Эта проблема rails сообщает о том же, но для Oracle.
Здесь, при переполнении стека, mysql - Rails: различия в столбцах db / schema.rb - null: false в колонках create_at / updated_at - это та же проблема, но предложенное решение (сбросить БД и создать заново) мне не помогло.

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