Rails:db / schema.rb中的差异 - null:false:created_at / updated_at列

时间:2013-09-09 10:29:53

标签: mysql ruby-on-rails ruby-on-rails-3 rake dbmigrate

有人知道为什么每当我在生产环境中运行rake db:migrate时,schema.rb文件都会被更改吗?

差异仅在所有模型表的created_at,update_at列上:

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

我知道这是它在生产数据库中找到的,但为什么它们在那里创建为null: false而不是在开发数据库中呢?

2 个答案:

答案 0 :(得分:3)

我的开发机器上有同样的东西。运行db:drop in production不是一个明智的想法,但是什么能解决'问题':

rake db:drop db:create db:migrate

自从我第一次用rails创建数据库以来,我的mysql版本发生了变化。迁移仍然按照旧的mysql版本运行。

这就是您生产环境中可能出现的问题。

答案 1 :(得分:0)

检查您在开发模式中使用的生产系统和系统中的mysql版本。默认值存在类似问题。

点击此链接:https://www.ruby-forum.com/topic/134121