sobota, 12 marca 2011

Amazon S3 i backup

Dzięki Ruby5 ponownie znalazłem fajne narzędzie, tym razem do robienia backup'ów.

Gem backup ma za zadanie robić backup'y (bazy danych, plików) i wysyłać je tam gdzie sobie tego zażyczymy (ftp, Amazon S3, itd).

Spodobała mi się opcja wysyłania backup'u bazy MySql na Amazon S3.
Nigdy wcześniej nie korzystałem z Amazon S3, można tam założyć konto, które będzie darmowe do momentu gdy miesięcznie nie przekroczy się następujących parametrów:
  • 5 GB of Amazon S3 storage
  • 20 000 Get Requests
  • 2 000 Put Requests
Sądzę, że na początek to w zupełności wystarczy.
Więcej info odnośnie darmowego serwisu Amazon: AWS free

OK, mamy konto S3, należałoby utworzyć jakiś bucket na S3 - należy zalogować się do
https://console.aws.amazon.com - nazwę naszego bucket'a ustawiamy na 'test'.

Potrzebujemy jeszcze access_key_id oraz secret_access_key, są do pobrania z:
https://aws-portal.amazon.com

Teraz czas na gema backup, instalacja:



Generujemy domyślny plik konfiguracyjny:



Należy dostosować plik konfiguracyjny (domyślnie w ~/Backup/config.rb) do naszych potrzeb: nazwa bazy, użytkownika i hasło oraz nazwa regionu Amazon, ja wybrałem Europę - stąd wartość dla s3.region = 'eu-west-1'



Teraz możemy wykonać backup bazy:



...i mamy zrobiony backup!

W kolejnym poście postaram się opisać automatyzację tego rozwiązania za pomocą gema whenever.

poniedziałek, 7 marca 2011

Upgrade do Rails 3.0.5 paperclip i ... gdzie są moje zdjęcia?!?!

Tak jak zalecano zrobiłem upgrade na produkcji do Rails 3.0.5. Po wgraniu nowej wersji oraz po komendzie:
bundle update
gem'y rails zostały zaktualizowane.
Aplikacja (holidio) śmiga, jednak zauważyłem, że niestety nie wyświetlają się zdjęcia, które zostały wgrane za pomocą paperclip...
Hmm, nie zastanawiając się zbyt długo zrobiłem szybki rollback (dobrze, że korzystam z capistrano):
cap deploy:rollback
To przywróciło aplikację do poprzedniej wersji a mi dało trochę czasu na zastanowienie się co poszło nie tak...

Przypomniało mi się, że słuchając jednego z ostatnich podcastów Ruby5 chłopaki wspominali, że w Rails 3.0.5 poprawiono "pluralizację" oraz, że m.in. od teraz np. "media" w liczbie mnogiej dalej pozostaną "media", a nie jak to było wcześniej "medias"...
Ale co to ma wspólnego z moją aplikacją?
Ano ma, paperclip domyślnie używa katalogu "data" dla załączników. Ja potrzebowałem wielu załączników (zdjęć) do mojego modelu, więc załączniki te zostały zapisane w folderze "datas" (zła odmiana w liczbie mnogiej).
Po upgrade do Rails 3.0.5 aplikacja szukała zdjęć w katalogu "data"... a takiego folderu niestety nie miałem na serwerze... Aby to naprawić wystarczyło zmienić nazwę folderu z "datas" na "data" i sprawa załatwiona.
Gdybym potrzebował jednak utrzymać starą nazwę folderu, można przekazać paperclip parametr :path i dowolnie ustawić jego wartość.

sobota, 5 marca 2011

Couldn't parse YAML at line - po update RubyGems do wersji 1.6.1

Wygląda na to, że połączenie Ruby 1.9.2 oraz najnowszej wersji RubyGems 1.6.1 domyślnie używa 'psych' jako parsera plików YAML...

Mi nie udało się zainstalować gem'a 'psych', więc trzeba było ustawić inny domyślny parser dla aplikacji.

W pliku boot.rb dodałem następujące linie:
require 'yaml'
YAML::ENGINE.yamler = 'syck'