Als ich ein Portfolio erstellte und später eine Spalte hinzufügen wollte oder als ich den Typ der zu Beginn festgelegten Spalte ändern wollte, wusste ich nicht, was ich tun sollte. Selbst wenn Sie ein Anfänger sind, selbst wenn Sie ein Anfänger sind Ich habe es zum leichteren Verständnis zusammengefasst. (Zuerst dachte ich, ich sollte die vorhandene Migrationsdatei direkt hinzufügen oder ändern, aber das ist nicht korrekt. Deshalb werde ich eine weitere Migrationsdatei erstellen und beschreiben, wie man sie hinzufügt oder ändert. )
Wenn Sie ein Modell mit dem folgenden Befehl erstellen, wird automatisch zusammen mit dem Modell eine Migrationsdatei zum Erstellen der Tabelle erstellt, für die dieses Modell verantwortlich ist.
$ rails g model [Modellname] [Spaltenname]:[Spaltentyp]
Wenn Sie beispielsweise ein Benutzermodell erstellen möchten, geben Sie Benutzer für [Modellname] und Name: Zeichenfolge E-Mail: Zeichenfolge für [Spaltenname: Spaltentyp] an. Der Befehl sieht folgendermaßen aus:
$ rails g model User name:string email:string
Wenn Sie den Befehl ausführen, wird die folgende Migrationsdatei erstellt.
db/migrate/XXXXXXXXXXXXXX_create_users.rb
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
end
Stellen Sie sicher, dass die obige Datei generiert wurde, und führen Sie die Migration mit dem folgenden Befehl aus.
$ rails db:migrate
Die Benutzertabelle wird jetzt erstellt.
Wenn Sie einer bereits erstellten Tabelle eine Spalte hinzufügen möchten, erstellen Sie eine neue Migration und fügen Sie sie hinzu, anstatt direkt in die vorhandene Migrationsdatei zu schreiben.
Verwenden Sie den folgenden Befehl, um eine Migrationsdatei zum Hinzufügen einer Spalte zu erstellen.
$ rails g migration Add[Spaltenname]To[Tabellenname] [Spaltenname]:[Spaltentyp]
Wenn Sie beispielsweise einer vorhandenen Benutzertabelle eine Einführungsspalte (Texttyp) hinzufügen möchten, verwenden Sie Folgendes.
$ rails g migration AddIntroductionToUsers introduction:text
Wenn Sie den Befehl ausführen, wird die folgende Migrationsdatei erstellt.
db/migrate/XXXXXXXXXXXXXX_add_introduction_to_users.rb
class AddIntroductionToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :introduction, :text
end
end
Stellen Sie sicher, dass die obige Datei generiert wurde, und führen Sie die Migration mit dem folgenden Befehl aus.
$ rails db:migrate
Die Einführungsspalte (Texttyp) wird jetzt zur Benutzertabelle hinzugefügt.
Wenn Sie den Spaltentyp einer vorhandenen Tabelle ändern möchten, können Sie ihn auf dieselbe Weise wie beim Hinzufügen einer Spalte ändern.
Verwenden Sie den folgenden Befehl, um eine Migrationsdatei zum Ändern des Spaltentyps zu erstellen.
$ rails g migration change_data_[Spaltenname]_to_[Tabellenname]
Wenn Sie beispielsweise den Typ der Materialspalte der vorhandenen Produktionstabelle ändern möchten, verwenden Sie Folgendes.
$ rails g migration change_data_material_to_productions
Wenn Sie den Befehl ausführen, wird eine Migrationsdatei erstellt. Fügen Sie daher den Typ der Spalte hinzu, die Sie ändern möchten. Wenn Sie beispielsweise den Typ der Materialspalte der Produktionstabelle in den Ganzzahltyp ändern möchten, fügen Sie Folgendes hinzu.
db/migrate/XXXXXXXXXXXXXX_change_data_material_to_productions.rb
class ChangeDataMaterialToProductions < ActiveRecord::Migration[6.0]
<!-- *****Fügen Sie Folgendes hinzu***** -->
def change
change_column :productions, :material, :integer
end
<!-- *****Fügen Sie mehr hinzu***** -->
end
Führen Sie nach Abschluss des Hinzufügens die Migration mit dem folgenden Befehl aus.
$ rails db:migrate
Der Typ der Materialspalte in der Produktionstabelle wird jetzt in einen ganzzahligen Typ geändert.
Dieser Artikel ist der erste, der in Qiita zusammenfasst, was Anfänger beim Erstellen eines Portfolios gelernt haben.
Wenn der Inhalt fehlerhaft ist, wäre ich Ihnen dankbar, wenn Sie einen Kommentar abgeben könnten.
Recommended Posts