2012-03-10 17 views
19

Witam Mam tabelę w mojej aplikacji rails, która nie ma żadnej kolumny id lub klucza podstawowego. to dlatego, że ta tabela została przeniesiona do mojej aplikacji railsowej z poprzedniej aplikacji, a tabela jest wstępnie wypełniona danymi. Teraz zdaję sobie sprawę, że bez liczby całkowitej klucz podstawowy, szyny nie mogą wyświetlać edycji i wyświetlać widoków w przeglądarce. Więc chciałem dodać kolumnę id do mojej bazy danych, która jest kluczem podstawowym i automatycznie się powiększa.jak dodać klucz podstawowy do tabeli w szynach

Na podstawie mojego zgłoszenia google natknąłem się na kilka wpisów dotyczących tworzenia kluczy podstawowych do stołu, ale nic, co było kompletne.

Więc zastanawiam się, czy ktoś może mi tu pomóc. Jak dotąd wiem, że aby zmienić tabelę należy napisać migrację, a następnie ją uruchomić. Polecenie, które musi zostać uruchomione w celu dodania kolumny id, jest następujące:

rails generate migration add_id_to_businesses id:primary_key 

Jednak po uruchomieniu tego polecenia do mojej bazy danych nie jest dodawana nowa kolumna. Nie wiem, jak postąpić. Jak dodać nową kolumnę do mojej bazy danych?

naprawdę docenić rękę ..... Dzięki,

+0

Prawie na pewno chcesz 'ID: int' zamiast klucza podstawowego. Jak wygląda twój plik migracyjny? –

Odpowiedz

29
rails g migration add_id_to_products id:primary_key 

     invoke active_record 
     create db/migrate/20120310085527_add_id_to_products.rb 

plik migracji powinien wyglądać -

# db/migrate/20120310085527_add_id_to_products.rb 
    class AddIdToProducts < ActiveRecord::Migration 
    def change 
     add_column :products, :id, :primary_key 
    end 
    end 
+1

uruchom rake db: migrate :) –

+3

Działa to tylko w przypadku kluczy głównych typu integer. –

+1

@ AttilaO. dobrze! w przypadku, gdy chcesz inny klucz podstawowy, musisz najpierw dodać tę kolumnę, a następnie uruchomić polecenie uruchamiania, aby zaktualizować tę kolumnę jako klucz podstawowy. –

Powiązane problemy