Rails的迁移总是插入空格或改变列的顺序在架构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails的迁移总是插入空格或改变列的顺序在架构相关的知识,希望对你有一定的参考价值。
有一个令人沮丧的问题,在我的轨道迁移更新空格的模式和表的列的位置。
所以大多数时候,我跑bundle exec rake db:migrate
它会做的以下情况之一。当我这个合并到我们的主分支和其他开发商合作过这一点,那么他们的轨道迁移恢复选项卡和位置排序。
我们注意到,所有三个开发人员团队运行迁移时,如果我一直架构的最后提交者有同样的问题。
我刚刚更新postgres to v9.2.4
是一样的其他开发者。的还有什么我可以尝试任何想法?
Examples
下面是混帐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
我建了一个宝石来解决这个问题。
它的列进行排序,索引名和外键,去除多余的空格和运行Rubocop一些格式统一的schema.rb文件的输出。
https://github.com/jakeonrails/fix-db-schema-conflicts
当你将它添加到你的Gemfile你只要运行耙分贝:迁移或耙分贝:架构:甩正常人一样。
好消息!轨终于推出解决了这个确切的更新。从Rails的V5.1.0开始,默认(和唯一的选择)是在列之间删除任何多余的空格。
我怀疑这个错误是由空格(“标签宽度”,如果你使用的是升华)的不同配置而引起的。
你刚才应该忽略你的版本控制schema.rb。它改变了不同取决于迁移阶和谁产生他们。你只需要迁移到产生参与项目每个开发人员的appropiated架构。
问候。
以上是关于Rails的迁移总是插入空格或改变列的顺序在架构的主要内容,如果未能解决你的问题,请参考以下文章