在与其他开发人员合作时,这个问题似乎一直在发生。我们有一个像这样在迁移中创建的表(由 postgres 支持):
create_table :subscription_events do |t|
t.integer :subscriber_id
t.text :source_url
t.text :params
t.text :session
t.timestamps
end
然后在未来看似随机的时间点运行 rake db:migrate 后,Rails 想要更新 schema.rb 文件以使用datetime
而不是timestamp
,这也导致整个 create_table 调用的额外混乱重新缩进:
create_table "subscription_events", :force => true do |t|
- t.integer "subscriber_id"
- t.text "source_url"
- t.text "params"
- t.text "session"
- t.timestamp "created_at", :limit => 6, :null => false
- t.timestamp "updated_at", :limit => 6, :null => false
+ t.integer "subscriber_id"
+ t.text "source_url"
+ t.text "params"
+ t.text "session"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
end
这是什么原因造成的?我们应该检查这个修改过的文件还是每次都重置它?