Rails: differences in db/schema.rb - null: false at created_at/updated_at columns

荒凉一梦 提交于 2019-12-05 17:28:45

问题


Does anybody know why whenever I run rake db:migrate in my production environment, the schema.rb file is changed?

The differences are only on the created_at, update_at columns of all model tables:

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

I know that this is what it finds in the production db, but why were they created as null: false there and not in the development db too?


回答1:


I had the same thing on my dev machine. Running db:drop in production is not a wise idea, but what will fix the 'problem':

rake db:drop db:create db:migrate

My mysql version had changed since I first created the database with rails. The migrations still ran according to the old mysql version.

This is what probabaly happens at your production environment.




回答2:


Check your mysql version in production system and system where you used in development mode. There was a similar issue with default values.

Check this link : https://www.ruby-forum.com/topic/134121



来源:https://stackoverflow.com/questions/18696228/rails-differences-in-db-schema-rb-null-false-at-created-at-updated-at-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!