W Symfony stworzenie szkieletu bazy danych jest bardzo proste, ogranicza się to do edycji jednego pliku. Tym się teraz zajmiemy.
Aby utworzyć schemat bazy danych otwieramy plik schema.yml w katalogu config.
Informacja dla czytelnika
Prawdopodobnie nie będę przedstawiał zwartego kodu przynajmniej na razie, więc mój schemat bazy danych Ci się nie przyda, służy on tylko jako przykład. Z postów, które piszę nie uda Ci się skleić zwartej aplikacji!
Pliki YAML
Jak zwykle nie będę pisał co to YAML, przeczytaj sobie sam. O używaniu YAML w symfony dowiesz się tutaj (mniej więcej w połowie strony). Złota zasada: nie używaj tabulatorów tylko spacji. Jeszcze jedno zawsze po nazwie tabeli, kolumny itp musi być dwukropek.
Przykładowy kod Symfony (wcięcia zniszczone by WordPress.com):
propel:
users:
id: ~
username: { type: varchar, size: 50, index: unique, required: true }
password: { type: char, size: 32, required: true }
mail: { type: varchar, size: 150, index: unique, required: true }
secret: { type: char, size: 32, index: unique, required: true }
photo: { type: varchar, size: 50, required: false }
user_rank: { type: integer, default: 0 }
propel – to nazwa ORM.
users – to nazwa tabeli.
id – to nazwa kolumny, reszta tak samo.
Inny schemat bazy danych (tym razem obrazek):

Przykładowy schemat bazy danych - Propel plik YAML
Dodatkowe informacje na temat propela
W przypadku gdy tworzymy tabele takie jak id, created_at czy też updated_at wystarczy dopisać ~, a Symfony samo ustawi typ danych dla tej kolumny. Dokładne informacje o tym znajdziesz tutaj.
Pamiętaj! W klamrach { … } wpisujemy typy danych, i inne wartości, które chcemy przypisać danej kolumnie!
Typy danych dla kolumn w Propelu
Jeżeli już korzystasz z propela pewnie przyda ci się listing typów danych jakie obługuje.
Numeryczne:
- TinyInt
- Integer
- BigInt
- Double
- Decimal
- Float
- Real
Prawda/Fałsz:
- Boolean
Ciągi znaków:
- char
- varchar
- longvarchar – parametr size jest ignorowany.
LOB – Locator Object:
- clob
- blob
Czas i daty:
- time
- date
- timestamp
Więcej info na temat typów danych znajdzie tutaj.
Konfiguracja bazy danych i stworzenie schematu tabel
Zakładam, że bazę danych potrafisz sobie stworzyć sam, więc omówię tylko jak automatycznie skonfigurować symfony i zainicjować szkielet bazy danych.
Aby skonfigurować bazę danych w symfony wystarczy pisać tą komendę:
symfony configure:database "pgsql:host=localhost;dbname=sfdemo" user haslo
Czy muszę omawiać tą komendę? myślę, że nie. Wszystko jest tutaj analogiczne. PS. Konfiguracja przechowywana jest w pliku config/databases.yml
Teraz postaramy się wrzucić nasz schemat do bazy danych. Jeżeli nic nie spieprzyłeś wszystko pójdzie jak po maśle. Ja coś spieprzyłem? Zostaw info w komentarzu to sprawdzimy.
symfony propel:build-sql
Jeżeli zobaczysz coś na czerwono to to nie wróży nic dobrego, a jeżeli nie to przejdź dalej:
symfony propel:insert-sql --no-confirmation
Jeśli wszystko poszło sprawnie to czas zbudować model!
symfony propel:build-model
Na razie to wszystko dzisiaj już raczej nic nie będzie.
