Ruby on rails 在Rails 4和Sqlite中移动列

Ruby on rails 在Rails 4和Sqlite中移动列,ruby-on-rails,sqlite,ruby-on-rails-4,rails-migrations,Ruby On Rails,Sqlite,Ruby On Rails 4,Rails Migrations,提前谢谢你的帮助。我在Rails 4.0.2中有一个使用开发sqlite 3数据库的简单表。我想移动其中一列的顺序,但由于某种原因它不起作用。我相信我会按照这里的指示去做。迁移运行时不会出错,但不会发生任何更改 我当前的模式: create_table "emails", force: true do |t| t.string "email" t.boolean "active" t.integer "member_id" t.datetime "created_at"

提前谢谢你的帮助。我在Rails 4.0.2中有一个使用开发sqlite 3数据库的简单表。我想移动其中一列的顺序,但由于某种原因它不起作用。我相信我会按照这里的指示去做。迁移运行时不会出错,但不会发生任何更改

我当前的模式:

create_table "emails", force: true do |t|
  t.string   "email"
  t.boolean  "active"
  t.integer  "member_id"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.integer  "email_type_id"
end
我正在尝试使用此迁移将'email\u type\u id'上移到'member\u id'后面:

class Trynumber5of < ActiveRecord::Migration
  def change
    change_column :emails, :email_type_id, :integer, :after => :member_id
  end
end
类Trynumber5of:member\u id
结束
结束
我肯定我在做傻事。它运行但什么也没发生?我在迁移代码中引用了这一点

提前感谢您的帮助,它成了我的挑战白鲸,让我发疯;-)


标记

您应该阅读您发布的解决方案的评论,它将回答您的问题。除非在迁移过程中编写SQL,否则它似乎不起作用。我将走一条人迹罕至的路:为什么要尝试移动它?使用ActiveRecord,您可以获得对象,而列顺序并不重要。使用SQL,您可以很容易地按照您想要的顺序返回您想要的任何字段。这两个选项中的任何一个解决了您试图修复的问题吗?重读一遍,听起来它只对某些数据库驱动程序有效,但schema.rb没有更新其顺序仍然让我感到惊讶。110%正确,对于活动记录端,没有问题。如果需要的话,这是一个方便的文档和低级支持请求。同意@colinm,因为当我开始使用来自PHP/MySQL的Rails时,我尝试过做完全相同的事情(对表列重新排序)。我一直在尝试做你正在做的事情,但在某个时候我意识到“好吧,不管怎么说,这在头x个月里可能都不重要(它仍然不重要)”和“数据库也可能会改变”。