Witam. Zaczałem czytać Agile wyd 2, wiem że już ponoć nieaktualne ale poczekam do wydania pełnej trójki bo nie chcę się bawić w czytanie niedokończonej książki, i od razu mam problem. Pierwszy przykład helloworda… powinien działać ponoć a u mnie wywala coś takiego: http://pastebin.4programmers.net/121268 (ładuje dopastebina bo nie widze tu na forum jakiegoś dobrego formatowania a nie chce robić bałaganu)
Nie bardzo znam się na programowaniu bazodanowym więc i na samych bazach niewiele. Wcześniej zainstalowałem mysql przez apt-get na ubuntu. Mysql działa poprawnie. Przy instalacji nie ustawiałem żadnego hasła bo i nie pytano mnie o to. Ktoś mi powiedział zę muszę utworzyć trzy bazy za pomocą “rake db:create:all” Wtedy wywala mi coś takiego:
Couldn’t create database for {“socket”=>"/var/run/mysqld/mysqld.sock", “encoding”=>“utf8”, “username”=>“root”, “adapter”=>“mysql”, “password”=>nil, “database”=>“demo_development”}
Couldn’t create database for {“socket”=>"/var/run/mysqld/mysqld.sock", “encoding”=>“utf8”, “username”=>“root”, “adapter”=>“mysql”, “password”=>“nil”, “database”=>“demo_production”}
Couldn’t create database for {“socket”=>"/var/run/mysqld/mysqld.sock", “encoding”=>“utf8”, “username”=>“root”, “adapter”=>“mysql”, “password”=>“nil”, “database”=>“demo_test”}
Wiem że hasła których używa, tutaj puste, znajdują się w pliku database.yml próbowałem ustawiać jakieś hasło ale nic to nie zmienia. Z resztą dobrze rozumiem? hasło jakie tam ustawię będzie po prostu nowym hasłem do baz które utworzę przy pomocy rake db:create:all?
Ehh ok więc co mam z tym zrobić teraz żeby coś ruszyło i dlaczego w Agile nie ma do tego momentu ani słowa o bazach, po prostu helloworld nie korzysta z bazy żadnej, a tu system mi się o to pluje. Domyślam się, że może się już coś zmieniło, Agile jest do wersji 1.2 chyba a ja mam najnowszą… Więc. Co robić?
[quote=Pitrija]Witam. Zaczałem czytać Agile wyd 2, wiem że już ponoć nieaktualne ale poczekam do wydania pełnej trójki bo nie chcę się bawić w czytanie niedokończonej książki, i od razu mam problem. Pierwszy przykład helloworda… powinien działać ponoć a u mnie wywala coś takiego: http://pastebin.4programmers.net/121268 (ładuje dopastebina bo nie widze tu na forum jakiegoś dobrego formatowania a nie chce robić bałaganu)
Nie bardzo znam się na programowaniu bazodanowym więc i na samych bazach niewiele. Wcześniej zainstalowałem mysql przez apt-get na ubuntu. Mysql działa poprawnie.[/quote]
Na początek musisz stworzyć bazy danych. Po jednej dla każdego z środowisk w którym będziesz pracował. Domyślnie rozwijasz aplikację w trybie development.
> mysql -u root
lub
> mysql -u root -p HASLO
dalej tworzysz bazę danych dla aplikacji demo i ewentualnie (a właściwie dobrze by było) ustawiasz uprawnienia:
mysql> create database demo_development;
mysql> grant all on demo_development.* to NAZWA_USERA_APP@localhost identified by TAJNE_HASLO_APP;
mysql> flush privileges;
Plik database.yml jest uaktualniany przez ciebie i na podstawie tych danych Railsy łączą się z bazą:
>
development:
adapter: mysql
database: demo_development
username: NAZWA_USERA_APP
password: TAJNE_HASLO_APP
host: localhost
lub podajesz socket.
Tworzyć bazę danych możesz także z pomocą innych narzędzi, np mysqladmin, phpMyAdmin, MySQL Query Browser czy inne, które Ci odpowiadają.