有人知道为什么每当我在生产环境中运行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
而不是在开发数据库中呢?
答案 0 :(得分:3)
我的开发机器上有同样的东西。运行db:drop in production不是一个明智的想法,但是什么能解决'问题':
rake db:drop db:create db:migrate
自从我第一次用rails创建数据库以来,我的mysql版本发生了变化。迁移仍然按照旧的mysql版本运行。
这就是您生产环境中可能出现的问题。
答案 1 :(得分:0)
检查您在开发模式中使用的生产系统和系统中的mysql版本。默认值存在类似问题。