Programista Java w Rubylandzie, część 2. Pierwsza aplikacja.

01.12.2011

Ok, w poprzednim odcinku okazało się, że daje się zainstalować Rubyego i Railsy. Zobaczymy teraz, że nasz naiwny obraz Świata zostanie zburzony.

Będziemy chcieli utworzyć aplikację blog, taką samą, która jest w tutorialu Railsów na ich stronie, tyle, że działającą z normalną bazą danych, czyli w tym wypadku z Postgresem. Brzmi prosto? O nie, nie, nie. Może pod Linuksem albo MacOs-em idzie to normalnie, ale nie pod Windowsem.

Pierwsza rzecz to instalacja Postgresa. Lepiej się nie rzucać na wersję 9 (nie jest oficjalnie wspierana przez Rails – chyba nie jest), i nie należy dotykać się wersji 64 bit. Jeżeli ktoś nie lubi ćwiczeń w rodzaju podawanie w różnych, losowo wybranych miejscach ścieżki do Postgresa jako C:\Progra~1\PostgreSQL\8.4\bin to lepiej nie instalować Postgresa w Program Files tylko gdzieś, gdzie nie ma spacji w ścieżce.

Druga rzecz, to sterownik (czyli w ichniej terminologii, adapter) Rubyego do Postgresa. W Rubym instalacja jest tożsama z instalacją odpowiedniego gem-a. Wchodzimy więc na stronę wiki, żeby się dowiedzieć, jak się ten gem nazywa. I od razu człowiek się cieszy, bo ma do wyboru aż 4 adaptery. Prawda, że super?

Sytuacja się na szczęście upraszcza. Rozwijanie adaptera postgres znudziło się jego twórcą w 2008 roku. Jego następcą jest pg, który jest “natywnym” adapterem, który wymaga zainstalowania kawałka linuksa pod Windowsem.

Jest też postgres-pr, który jest adapterem napisanym tylko w Rubym, co wróży nędzną wydajność, ale powinno pozwolić uniknąć kłopotów z instalacją. Dodatkowo ostatnio ktoś się do niego dotykał w marcu 2009, co jest według autora wiki “sign of active development”. Zdaje się, że ostatnia wersja jest z grudnia 2009.

Jest jeszcze ruby-postgres, ale strona projektu wskazuje, że wszyscy jego deweloperzy zajęli się dawno czymś innym.

Najbardziej sensowną opcją jest użycie pg. Weźmy się więc za to.

Pierwsza rzecz, to adapter ten jest napisany w C (czyli jest “natywny”), w związku z tym pod Windowsem trzeba sobie zainstalować Developnent Kit. Instrukcję na tej stronie należy wykonać dokładnie, sprawdzając czy się gdzieś nie pomyliliśmy. Tutaj problemów nie napotkałem.

Następnie instalujemy gem pg: gem install pg? He, he, he. Takie rzeczy to tylko działają w tutorialach na stronie Railsów. To, co trzeba zrobić to:

gem install pg --platform=mswin32 --version=0.9.0 -- --with-pg=c:\programs\PostgreSQL\8.4\

Uwagi:

  1. mimo, że najnowszą wersją pg jest 0.10.0, to nie udało mi się z nią ruszyć, zresztą nie tylko mi,
  2. te dodatkowe dwa minusy za numerkiem wersji a przed --with-pg są potrzebne, to nie literówka,
  3. ukośnik na końcu ścieżki Postgresa też jest potrzebny.

Ja wiem, że niektórzy teraz przecierają oczy, że jakiś kawałem teoretycznie produkcyjnego kodu ma numer wersji 0.10, ale najwyraźniej tak jest.

Jak się wszystko poinstalowało, to możemy zająć się utworzeniem aplikacji.

Piszemy w konsoli
rails new c:\katalog\z\projektami\blog -d postgresql

Railsy generują gotowy do uruchomienia szkielet projektu. To znaczy niby on jest gotowy do uruchomienia, ale nie jest. Można się o tym łatwo przekonać wchodząc do utworzonego katalogu blog i pisząc w konsoli rails server.

Trzeba zrobić dwie rzeczy:

  • w pliku blog\config\database.yml podajemy poprawne ustawienia dla baz danych: Rails pracuje z trzema bazami: deweloperską, testową i produkcyjną (i bardzo słusznie) – trzeba ustawić poprawnie nazwę użytkownika, nazwę bazy, itp,
  • w pliku blog\Gemfile poprawiamy gem 'pg' na gem 'pg', '0.9.0', w innym przypadku Rails sobie doinstaluje sam najnowszą wersję pg, która nie chciała mi działać.

Uff teraz piszemy w konsoli, w katalogu projektu, bundle install, a następnie rails server i na http://localhost:3000 powinna się pojawić strona powitalne naszej aplikacji.

Póki co aplikacja nic nie robi, ale to już temat na kolejny wpis.



Twój komentarz