9 lipiec 2009...16:51

Konfiguracja bazy danych i pliki YAML

Przejdź do Komentarzy
Elephpants, originally uploaded by fdap.

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

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.

Dodaj komentarz