Migraatiot
Kehitä skeemaa.
Migraatiot on ilmainen Ruby Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Ruby Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Mikä migraatio on?
Migraatio on versioitu Ruby-tiedosto, joka kuvaa tietokantakaavion muutoksen, kuten taulun luomisen tai sarakkeen lisäämisen.
- Migraatiot ovat koodia, joten ne tallennetaan versionhallintaan.
- Kaikki tiimin jäsenet ottavat samat muutokset käyttöön samassa järjestyksessä.
- Tietokantaa ei koskaan muokata käsin.
Migraation luominen
Rails luo migraatiotiedostot puolestasi. Esimerkiksi rails generate migration CreateUsers luo aikaleimalla varustetun tiedoston hakemistoon db/migrate/. Aikaleima määrittää migraatioiden suoritusjärjestyksen.
Taulun luominen
Migraatio määrittää change-metodin. create_table rakentaa taulun, ja t.timestamps lisää automaattisesti sarakkeet created_at ja updated_at.
class CreateUsers < ActiveRecord::Migration[7.1]
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
endSaraketyypit
Yleiset saraketyypit vastaavat tietokantatyyppejä:
stringlyhyelle tekstille.textpitkälle tekstille.integer,float,decimalnumeroille.booleantotuusarvoille true ja false.datetime,dateaika-arvoille.
create_table :products do |t|
t.string :title
t.text :description
t.decimal :price
t.boolean :active
t.timestamps
endMigraatioiden suorittaminen
rails db:migrate ottaa kaikki odottavat migraatiot käyttöön ja päivittää tiedoston schema.rb. Rails tallentaa suoritetut migraatiot schema_migrations-tauluun, joten kukin migraatio suoritetaan vain kerran.
Sarakkeen lisääminen
Laajenna olemassa olevaa taulua luomalla migraatio ja käyttämällä komentoa add_column. Määritä taulu, sarakkeen nimi, tyyppi ja asetukset.
class AddAgeToUsers < ActiveRecord::Migration[7.1]
def change
add_column :users, :age, :integer, default: 0
end
endPalauttaminen
rails db:rollback peruu viimeisimmän migraation. Rails peruu change-metodin muutokset automaattisesti, kun toimenpiteet ovat peruttavissa, kuten add_column tai create_table.
Peruuttamattomat muutokset
Joitakin toimenpiteitä ei voi perua automaattisesti, kuten suoran SQL:n suorittamista tai tietoja sisältävän sarakkeen poistamista. Määritä tällöin erilliset up- ja down-metodit, jotta Rails tietää, miten muutos perutaan.
class ChangeData < ActiveRecord::Migration[7.1]
def up
execute "UPDATE users SET active = TRUE"
end
def down
execute "UPDATE users SET active = FALSE"
end
endIndeksit
Lisää indeksi nopeuttamaan usein kyselyissä käytetyn sarakkeen, kuten vierasavaimen tai kirjautumiseen käytettävän sähköpostiosoitteen, hakuja. Käytä asetusta unique: true, jos haluat valvoa yksikäsitteisyyttä myös tietokannan tasolla.
class AddIndexToUsersEmail < ActiveRecord::Migration[7.1]
def change
add_index :users, :email, unique: true
end
endMigraatiot ja schema.rb
Migraatiot ovat muutosten historia, kun taas schema.rb on nykyinen tilannekuva. Uudet kehittäjät voivat suorittaa komennon rails db:schema:load ja rakentaa tietokannan heti tilannekuvan perusteella sen sijaan, että kaikki migraatiot suoritettaisiin uudelleen.
Parhaat käytännöt
Pidä migraatiot turvallisina:
- Älä koskaan muokkaa jaetuissa ympäristöissä suoritettua migraatiota, vaan kirjoita uusi migraatio.
- Pidä kukin migraatio keskittyneenä yhteen muutokseen.
- Lisää tietokannan tasolle eheyden varmistavat rajoitteet (null: false, indeksit).
Pikatarkistus
Testaa, ymmärrätkö migraatiot.
Kertaus: migraatiot
Opit muuttamaan tietokantakaaviota turvallisesti:
- Migraatiot ovat versioituja ja versionhallintaan tallennettuja kaavion muutoksia.
create_table,add_columnjaadd_indexmäärittävät taulujen rakenteen.db:migrateottaa muutokset käyttöön jadb:rollbackperuu ne.- Käytä komentoja
up/downperuuttamattomiin muutoksiin. schema.rbon nykyinen tilannekuva.
Seuraavaksi mallit yhdistetään assosiaatioilla.
Opi Ruby tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 29
- Oppitunnit
- 109
Usein kysytyt kysymykset
Onko oppitunti ”Migraatiot” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Ruby Academy-oppimispolun 3 oppituntia, myös oppitunnin “Migraatiot”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Migraatiot”?
Kehitä skeemaa. Harjoittelet Ruby Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Ruby Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Ruby Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Migraatiot”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Ruby Academy-oppitunnilla?
Kyllä. Jokainen Ruby Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.