[Erkenntnisse aus diesem Artikel] ・ Informationen zur Migration -Rails db: Rollback-Ausführungsprozedur -Verfahren zum Hinzufügen und Löschen von Spalten -Verfahren zum Hinzufügen und Löschen, wenn die Spalte Typreferenzen enthält
【Umgebung】 ・ MacOS Catalina ・ Schienen 6.0.0 ・ Ruby 2.6.5
・ Konstruktionszeichnungen und Spezifikationen der Tabelle -Hat eine wichtige Rolle beim Erstellen von Tabellen in der Datenbank -Schreiben Sie den Spaltentyp, den Spaltennamen und die Optionsinformationen in die Migrationsdatei -Sie können Tabellen erstellen und ändern, indem Sie die Informationen widerspiegeln
① Erstellen Sie ein Modell (2) Beschreiben Sie die erforderlichen Informationen in der Migrationsdatei (db / migrate / 2020 ~~~~ .rb), die beim Erstellen des Modells generiert wurde.
db/migrate/20201014123456_create_address.rb
class CreateAddresses < ActiveRecord::Migration[6.0]
def change
create_table :addresses do |t|
# t.Spaltentyp:Spaltenname,Möglichkeit
t.string :postal_code, null: false
t.string :city, null: false
t.string :address_line, null: false
t.string :phone_number, null: false
t.references :order, null: false, foreing_key: true
t.timestamps
end
end
end
③ Schienen ausführen db: Migrieren Sie im Terminal, nachdem Sie bestätigt haben, dass Sie sich im Verzeichnis der Anwendung befinden, die Sie erstellen, um die Spalten der beschriebenen Tabelle wiederzugeben.
% rails db:migrate
④ Erfolgreich, wenn das Terminal die folgende Beschreibung hat!
== 20XXXXXXXXXXXX CreateAddresses: migrating ======================================
-- create_table(:addresses)
-> 0.0395s
== 20XXXXXXXXXXXX CreatePosts: migrated (0.0396s) =============================
Überprüfen Sie für alle Fälle, ob die in Sequel Pro beschriebenen Informationen angezeigt werden.
"Was soll ich machen,,," Es gibt Zeiten, in denen Sie sagen: "Ich möchte die Migration bearbeiten!"
Sobald es ausgeführt wird, kann es jedoch nicht mehr ausgeführt werden. Der Grund dafür ist, dass das Design als Verlauf aufgezeichnet wird, damit Sie überprüfen können, welche Änderungen Sie später vorgenommen haben.
Wenn Sie den Spaltennamen aufgrund einer Rechtschreibfehler ändern möchten, möchten Sie die Änderung nicht im Verlauf belassen.
Verwenden Sie in diesem Fall den Befehl `Rails db: rollback
`. (Da die reflektierten Informationen zurückgegeben werden können, bleibt der Änderungsverlauf nicht erhalten.)
Andernfalls ** erstellen Sie eine Migrationsdatei zum Hinzufügen / Entfernen von Spalten ** und nehmen Sie Änderungen vor. (Der Verlauf bleibt erhalten, da eine neue Datei erstellt und geändert wird.)
Ich möchte diese unten erklären.
① Überprüfen Sie den Status der Migrationsdatei mit dem Befehl `Rails db: migrate: status
`
% rails db:migrate:status
# rails db:migrate:Status Ausführungsergebnis
database:App Name_development
Status Migration ID Migration Name
--------------------------------------------------
up 20201001015223 Create orders
up 20201001092756 Create addresses
up 20201014023427 Add id to addresses
up 20201014030100 Add id to orders
② Führen Sie `` `Rails db: Rollback``` aus, um nach oben (ausgeführt) nach unten (modifizierbar) zu wechseln.
% rails db:rollback
③ Führen Sie `` `Rails db: migrate: status``` erneut aus, um den Status der Migrationsdatei zu überprüfen.
database:App Name_development
Status Migration ID Migration Name
--------------------------------------------------
up 20201001015223 Create orders
up 20201001092756 Create addresses
up 20201014023427 Add id to addresses
down 20201014030100 Add id to orders
④ Wenn Sie bestätigen können, dass der Status der zu ändernden Migrationsdatei nicht gültig ist, ändern Sie in diesem Fall die Datei db / migrate / 2020101430100_ ~~ .rb. ⑤ Führen Sie `` `Rails db: migrate``` aus, um die Korrekturen widerzuspiegeln
% rails db:migrate
⑥ Überprüfen Sie für alle Fälle, ob die in Sequel Pro beschriebenen Informationen angezeigt werden.
Wenn Sie eine Migrationsdatei zurücksetzen und herunterfahren möchten
rollback STEP=Numerischer Wert(Zu welcher Nummer möchten Sie von unten zurückkehren?)Beschreiben und ausführen Sie so
* Der Boden ist 1.
```terminal
#Wenn Sie die Sekunde von unten zurückrollen möchten
% rails db:rollback STEP=2
Wenn Sie den Status überprüfen, können Sie sehen, dass er von unten nach unten ist
database:App Name_development
Status Migration ID Migration Name
--------------------------------------------------
up 20201001015223 Create orders
up 20201001092756 Create addresses
down 20201014023427 Add id to addresses
down 20201014030100 Add id to orders
Ändern Sie danach die Migrationsdatei auf die gleiche Weise und führen Sie `` `Rails db: migrate``` aus
Schreiben Sie zunächst als Voraussetzung `add_column```, um eine Spalte hinzuzufügen, und`
remove_column```, um eine Spalte zu löschen.
#Spalte hinzufügen
add_column :users, :first_name, :string
#Spalte löschen
remove_column :users, :last_name, :string
① Führen Sie den Namen der `rail g Migrationsdatei
aus Der Dateiname lautet ``
Spaltenname hinzufügen zu. Tabellenname, zu dem er hinzugefügt wird``. Zu)
#Beim Hinzufügen der Namensspalte zur Benutzertabelle
% rails g migration AddNameToUsers
Inhalt der generierten Datei
db/migrate/20200000000000_add_names_to_users.rb
class AddNamesToUsers < ActiveRecord::Migration[6.0]
def change
end
end
(2) Beschreiben Sie die Informationen in der neu generierten Migrationsdatei.
db/migrate/20200000000000_add_names_to_users.rb
class AddNamesToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :first_name, :string
add_column :users, :last_name, :string
end
end
③ Führen Sie `` `Rails db: migrate``` aus
% rails db:migrate
① `Name der Rail G-Migrationsdatei Hinzufügender Spaltenname: Führen Sie den Typ`
aus
#Beschreiben Sie die detaillierten Informationen der hinzuzufügenden Spalte
% rails g migration AddNameToUsers first_name:string last_name:string
Inhalt der generierten Datei (Migrationsdatei wird mit dem Inhalt der beschriebenen Datei generiert)
db/migrate/20200000000000_add_names_to_users.rb
class AddNamesToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :first_name, :string
add_column :users, :last_name, :string
end
end
② Führen Sie `` `Rails db: migrate``` aus
% rails db:migrate
Situation: Fügen Sie address_id als externen Schlüssel zur Tabelle Orders hinzu
① Führen Sie `Rails g Migrationsdateiname
`aus
# address_Beim Hinzufügen der ID-Spalte zur Tabelle "Bestellungen"
% rails g migration AddIdToOrders
② Schreiben Sie in die generierte Datei
db/migrate/20201014000000_add_id_to_orders.rb
class AddIdToOrders < ActiveRecord::Migration[6.0]
def change
#hinzufügen
add_reference :orders, :address, foreign_key: true
#Löschen
remove_reference :orders, :address, foreign_key: true
end
end
Zusätzliche Punkte
-Es muss `add_reference``` sein -Schreibe
Foreign_key: true``` (nur wenn nötig) Löschpunkt -Es muss ``
remove_reference``` sein
③ Führen Sie `` `Rails db: migrate``` aus
% rails db:migrate
Das ist alles für die Erklärung! !!
Es ist länger als erwartet, aber ich hoffe, Sie finden diesen Artikel hilfreich. Sobald Sie sich daran gewöhnt haben, ist es einfach. Lernen wir es, damit die Entwicklung reibungslos verläuft! Danke, dass du bis zum Ende zugesehen hast.
・ Https://qiita.com/kurawo___D/items/e3694f7a870a1cc4738e ・ Https://freesworder.net/rails-column-add-remove/ ・ Https://gist.github.com/seak0503/84bfa6b37a0a6961c334
Recommended Posts