0Pricing
Ruby Academy · Lektion

Migrationen

Das Schema weiterentwickeln

Migrationen ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine Migration?

Eine Migration ist eine versionierte Ruby-Datei, die eine Änderung an Ihrem Datenbankschema beschreibt, etwa das Erstellen einer Tabelle oder das Hinzufügen einer Spalte.

  • Migrationen sind Code und werden daher in der Versionsverwaltung gespeichert.
  • Alle Teammitglieder wenden dieselben Änderungen in derselben Reihenfolge an.
  • Sie bearbeiten die Datenbank niemals von Hand.

Eine Migration erzeugen

Rails erzeugt Migrationsdateien für Sie. Beispielsweise erstellt rails generate migration CreateUsers eine Datei mit Zeitstempel im Verzeichnis db/migrate/. Der Zeitstempel legt die Reihenfolge fest, in der Migrationen ausgeführt werden.

Eine Tabelle erstellen

Eine Migration definiert eine change-Methode. create_table erstellt eine Tabelle; t.timestamps fügt automatisch created_at und updated_at hinzu.

class CreateUsers < ActiveRecord::Migration[7.1]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.timestamps
    end
  end
end

Spaltentypen

Übliche Spaltentypen werden Datenbanktypen zugeordnet:

  • string für kurze Texte.
  • text für lange Texte.
  • integer, float, decimal für Zahlen.
  • boolean für true/false.
  • datetime, date für Zeit- und Datumswerte.
create_table :products do |t|
  t.string :title
  t.text :description
  t.decimal :price
  t.boolean :active
  t.timestamps
end

Migrationen ausführen

rails db:migrate wendet alle ausstehenden Migrationen an und aktualisiert schema.rb. Rails vermerkt in einer Tabelle namens schema_migrations, welche Migrationen ausgeführt wurden, sodass jede nur einmal ausgeführt wird.

Eine Spalte hinzufügen

Um eine vorhandene Tabelle zu erweitern, erzeugen Sie eine Migration und verwenden add_column. Sie geben die Tabelle, den Spaltennamen, den Typ und die Optionen an.

class AddAgeToUsers < ActiveRecord::Migration[7.1]
  def change
    add_column :users, :age, :integer, default: 0
  end
end

Zurückrollen

rails db:rollback macht die letzte Migration rückgängig. Rails kehrt eine change-Methode automatisch um, wenn die enthaltenen Operationen umkehrbar sind, etwa add_column oder create_table.

Nicht umkehrbare Änderungen

Einige Operationen können nicht automatisch umgekehrt werden, etwa das Ausführen von direktem SQL oder das Entfernen einer Spalte mit Daten. Definieren Sie in solchen Fällen explizite up- und down-Methoden, damit Rails weiß, wie die Änderung rückgängig gemacht wird.

class ChangeData < ActiveRecord::Migration[7.1]
  def up
    execute "UPDATE users SET active = TRUE"
  end

  def down
    execute "UPDATE users SET active = FALSE"
  end
end

Indizes

Fügen Sie einer Spalte, nach der Sie häufig suchen, einen Index hinzu, etwa einem Fremdschlüssel oder einer E-Mail-Adresse, die zur Anmeldung verwendet wird. Verwenden Sie unique: true, um die Eindeutigkeit zusätzlich auf Datenbankebene zu erzwingen.

class AddIndexToUsersEmail < ActiveRecord::Migration[7.1]
  def change
    add_index :users, :email, unique: true
  end
end

Migrationen im Vergleich zu schema.rb

Migrationen sind die Historie der Änderungen; schema.rb ist der aktuelle Stand. Neue Entwickler können mit rails db:schema:load die Datenbank sofort aus diesem Stand erstellen, statt jede Migration erneut auszuführen.

Bewährte Vorgehensweisen

Halten Sie Migrationen sicher:

  • Bearbeiten Sie niemals eine Migration, die bereits in gemeinsam genutzten Umgebungen ausgeführt wurde; schreiben Sie stattdessen eine neue.
  • Beschränken Sie jede Migration auf eine einzelne Änderung.
  • Fügen Sie Integritätsbedingungen auf Datenbankebene hinzu (null: false, Indizes).

Kurzer Test

Testen Sie Ihr Verständnis von Migrationen.

Zusammenfassung: Migrationen

Sie haben gelernt, das Schema sicher weiterzuentwickeln:

  • Migrationen sind versionierte und committete Schemaänderungen.
  • create_table, add_column und add_index definieren die Struktur von Tabellen.
  • db:migrate wendet Änderungen an; db:rollback macht sie rückgängig.
  • Verwenden Sie up/down für nicht umkehrbare Änderungen.
  • schema.rb enthält den aktuellen Stand.

Als Nächstes verknüpfen Sie Modelle mit Associations.

Häufig gestellte Fragen

Ist die Lektion „Migrationen“ kostenlos?

Ja — der vollständige Text von „Migrationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Migrationen“?

Das Schema weiterentwickeln Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Migrationen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Active-Record-Grundlagen
  2. Migrationen
  3. Assoziationen
  4. Validierungen und Abfragen
← Zurück zu Ruby Academy