0
테이블에 열을 추가하려고합니다. 그러나created_at 열 앞에 스키마에 열을 추가하십시오.
class AddEmail < ActiveRecord::Migration
def change
add_column :apps, :email, :string, after: :website
end
end
내가 그것을 실행할 때, 새로 만든 이메일 열은 updated_at 후 마지막 열까지 모든 길을 간다 : 여기 내 마이그레이션 파일입니다
ActiveRecord::Schema.define(version: 20141217210326) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "apps", force: true do |t|
t.string "name"
t.string "iTunes"
t.string "website"
t.datetime "created_at"
t.datetime "updated_at"
t.string "email"
end
end
내가 원하는 것은입니다 웹 사이트와 created_at 열 사이에 이동할 새 전자 메일 열입니다. 어떻게해야합니까?
당신은 postgresql을 사용하고 있습니까? 실제로 ALTER TABLE 문에서 명시적인 열 위치를 지원합니까? 이것은 https://wiki.postgresql.org/wiki/Alter_column_position –
...이 아니라는 것을 암시하는 것으로 보입니다. 제안 된 해결 방법은 끝에 새로운 열을 추가 한 다음 데이터를 복사 한 다음에 열을 추가하는 것입니다. 그 다음에 올 콜에서부터 원본을 버리면 모든 것이 원하는 방식으로 정렬됩니다. 그게 문제가되는 것처럼 들리네. –
이것이 중요한 이유가 있습니까? 그렇다면 항목을 다시 정렬하려면 마이그레이션을 수행해야합니다. 다른 옵션은'schema.rb'에서 컬럼 순서를 바꾸고'db : drop db : create db : schema : load'를 실행하는 것입니다. 참고 : 그러면 데이터베이스의 모든 데이터가 삭제됩니다. 그래서 주문이 정말로 중요한 이유는 내가 확신 할 수 없기 때문입니다. – engineersmnky