2013-12-14 3 views
7

in den Schienen 4 Dokumentation (http://guides.rubyonrails.org/migrations.html#creating-a-join-table) sehe ich, dass eine Tabelle oder eine Join-Tabelle zu löschen, ist einer der folgenden Methoden in Befehlszeile verwenden:Rails 4: Wie Sie Tabellen Tabellen aus der Datenbank löschen oder entfernen (Join)?

drop_table und drop_join_table.

Es fügt jedoch hinzu, dass man "einen Block liefern muss" - und ich weiß nicht, wie das in der Ausführung aussieht.

Unabhängig davon ist meine Frage: Wie kann ich entweder einen Tisch fallen lassen oder einen Join-Tisch fallen lassen?

Wenn ich sage, Drop, ich meine, entfernen Sie es aus meiner Datenbank. Ich weiß, dass ich Migrationen nicht löschen kann und dass es nicht ratsam ist, Migrationen rückgängig zu machen, weil dadurch die Zusammenarbeit erschwert wird. Daher möchte ich vermeiden, Migrationsdateien zu löschen und Migrationen rückgängig zu machen, wenn möglich.

Ich habe beim Erstellen von Migrationen einen Fehler gemacht, um die Datenbank zu füllen. Ich weiß, wie man die Spalten von Tabellen ändert (neue hinzufügen, umbenennen und löschen). Ich weiß einfach nicht, wie man Tabellen bereinigt.

Vielen Dank für die Beantwortung meiner Frage.

Ich möchte eine Tabelle vollständig aus meiner Datenbank entfernen. Meine Anwendung läuft auf Schienen 4.

Antwort

15

Die drop_join_table Methode ist in dem Dokument definieren drop_join_table

Es dauert Tabelle 1, Tabelle 2 Namen. Beispiel: Sie haben zwei Tabellen categories und products benannt und Tabelle categories_products genannt beitreten)

So eine Migrationsdatei mit einem beliebigen Namen erstellen Sie so wollen, dann schreiben Sie Code-Tabellen löschen beitreten:

def change 
    drop_join_table :categories, :products 
end 

Sie kann in anderen Optionen drop_join_table Methode übergeben, diese Optionen wie die gleichen wie create_join_table. Sehen Sie sich diese Methode an, um weitere Optionen zu sehen.

Beispiel, wenn Ihre Tabelle beitreten nicht Namen folgen Konvention haben, wie categorization, man könnte es geben:

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

eine Tabelle zu löschen, ist es einfacher, mit drop_table Methode:

def change 
    drop_table :table_name 
end 

Andere Option kann in drop_table Methode übergeben werden, wie Optionen create_table Methode

+0

Hey Kien, das ist eine große Brea kdown. Vielen Dank. – robertjewell