2013-12-14 18 views
7

w szynach 4 dokumentacji (http://guides.rubyonrails.org/migrations.html#creating-a-join-table) I widać, że spadek stół albo tabelę przyłączenia, można stosować następujące metody zgodne polecenia:Rails 4: Jak upuszczać lub usuwać (łączyć) tabele tabel z bazy danych?

drop_table i drop_join_table.

Dodaje jednak, że trzeba "dostarczyć blok" - i nie wiem, jak to wygląda w wykonaniu.

Bez względu na to, moje pytanie brzmi: w jaki sposób mogę upuścić tabelę lub upuścić tabelę łączenia?

Ponadto, gdy mówię "upuść", mam na myśli usunięcie go z mojej bazy danych. Wiem, że nie mogę usunąć migracji i że nie jest rozsądne wycofywanie migracji, ponieważ zakłóca to pracę zespołową - dlatego chciałbym uniknąć usuwania plików migracyjnych i cofania migracji, jeśli mogę.

Podczas tworzenia migracji do zapełnienia bazy danych popełniłem błąd. Wiem, jak modyfikować kolumny tabel (dodawać nowe, zmieniać ich nazwy i usuwać). Po prostu nie wiem, jak usunąć tabele.

Dziękuję za rozpatrzenie mojego pytania.

Chciałbym usunąć tabelę całkowicie z mojej bazy danych. Moja aplikacja jest uruchomiona na Rails 4.

Odpowiedz

15

Sposób drop_join_table jest określenie w dokumencie drop_join_table

Zajmuje tabela 1, tabela 2 nazwy. Przykład: masz 2 stoły nazwie categories i products i dołącz tabelę o nazwie categories_products)

więc utworzyć plik migracji z dowolną nazwę, a następnie wpisać kod, aby usunąć łączenia tabel::

def change 
    drop_join_table :categories, :products 
end 

ci może przechodzić w innych opcjach do metody drop_join_table, te opcje są takie same jak create_join_table. Spójrz na tę metodę, aby zobaczyć więcej opcji.

przykład, jeśli dołączyć do stołu nie ma konwencję nazwa naśladowania, jak categorization, można go określić:

def change 
    drop_join_table :categories, :products, table_name: categorization 
end 

Aby usunąć tabelę, łatwiej jest z drop_table metody:

def change 
    drop_table :table_name 
end 

Inne opcje można przekazać do metody drop_table, np. Opcji create_table metoda

+0

Hej Kien, to jest świetne brea Kdown. Dziękuję Ci. – robertjewell

Powiązane problemy