Mam jedną tabelę o nazwie profiles
z niektórymi kolumnami.Rails 3.1 dodaj kolumny z change_table migration
Teraz chcę dodać kilka kolumn do tej tabeli przy użyciu metody change
- metoda w szynach 3.1. I stworzył migracji z następującego kodu:
def change
change_table :profiles do |t|
t.string :photo
t.string :name
t.references :user
end
end
Migracja działa perfekcyjnie, ale gdy chcę wycofać uzyskać
SQLite3::SQLException: duplicate column name: photo: ALTER TABLE "profiles" ADD "photo" varchar(255)
Jakieś pomysły dlaczego?
Co o dodanie odniesienia z add_column? Myślę, że mógłbym to zrobić tak: http://stackoverflow.com/questions/493777/add-column-for-references-rails/493802#493802 Ale byłoby bardziej elastyczne, aby móc dodać go bezpośrednio w migracji jakoś. – martnu
@martnu: Dodanie referencji powoduje dodanie do tabeli pola ID typu integer - można go powielić za pomocą 'add_column: profiles,: user_id,: integer'. – sevenseacat
'reference' również dodaje indeks do kolumny' assoc_id', co jest przydatne. – Jeriko