【发布时间】:2013-07-16 19:35:19
【问题描述】:
有一个令人沮丧的问题,我的 Rails 迁移使用空格和表列的位置更新架构。
所以大多数时候当我运行bundle exec rake db:migrate 时,它会执行以下场景之一。当我将它合并到我们的主分支中并且其他开发人员解决这个问题时,他们的 Rails 迁移会恢复选项卡和位置顺序。
我们注意到,如果我是架构的最后一个提交者,则团队中的所有三个开发人员在运行迁移时都会遇到相同的问题。
我刚刚更新了postgres to v9.2.4,这与其他开发人员相同。有什么我可以尝试的想法吗?
示例
下面是 git diff 来演示正在发生的事情。
重新排序架构的示例:
create_table "accounts", :force => true do |t|
t.integer "organisation_id"
- t.boolean "active", :default => false
t.text "notes"
+ t.boolean "active", :default => false
end
将选项卡添加到架构的示例:
create_table "comments", :force => true do |t|
- t.integer "commentable_id", :default => 0
- t.string "commentable_type", :default => ""
+ t.integer "commentable_id", :default => 0
+ t.string "commentable_type", :default => ""
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
【问题讨论】:
-
是什么让你认为空格是制表符?有机会看到其中一个
create_tables 之前和之后的完整版本吗? -
@muistooshort 谢谢,它们可能是空格
-
第一个只是表示不是每个人的列在数据库中的顺序都相同,比较
psql内部的\d accounts输出,你会找到罪魁祸首;这可能以各种方式发生,应该不是问题。第二个可能只是对齐的事情(即使所有:default => ...选项对齐),但如果不查看schema.rb文件之前和之后的整体,就很难判断。
标签: ruby-on-rails ruby-on-rails-3.2 postgresql-9.2 rails-postgresql pg