Rails3 MySQL ActiveRecord Sorunsalı

Merhabalar,

Rails 3 geliştirme yaparken veritabanı tarafında mysql kullanıyorsanız aslında dertli bir versiyon sıkıntısı sizi bekliyor. Böyle söyleyip gözünüzü korkutmak istemem. Ancak mysql vb. rdbms’leri kullanırken SQLite kullandığınız kadar rahat davranamıyorsunuz.

Eğer ActiveRecord kullanmazsanız conflict problemleri ile uğraşmıyorsunuz. Ancak Ruby On Rails’i kolaylaştıran kütüphanelerden kurtulmanız iş yükünüzü arttırıyor.

En son Rails 3.0.0 ile MySQL2 Gem’ini kullanıyorsanız şu tarzda bir çıktı almanız olası.

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter)

Bu durumu çözmek için MySQL2 Gem’i tekrar yüklemeniz gerekiyor. Projenizdeki GemFile’da yer alan

gem 'mysql2'

kısmı

gem 'mysql2', '< 0.3'

şeklinde değiştirdikten sonra terminalden “bundle install” komutuyla gerekli gem’i tekrar indiriyoruz. Böylelikle kullandığımız Rails3 sürümünün uyumlu olduğu mysql2 gem’i tekrar derlemiş oluyoruz.

Bu tarz sürüm problemlerini http://rubygems.org/gems/mysql2 adresinden takip edip ona göre çözüm aramanızı tavsiye ederim.

rbGenerate – Simple Ruby Password Generator


rbGenerate Simple Ruby Password Generator

INSTALL

curl -O https://raw.github.com/halidaltuner/rbGenerate/master/rbGenerate
chmod +x rbGenerate
mv rbGenerate /usr/bin/
(require sudo)

USAGE

rbGenerate ( no argument)
- generate a password length of 5 character.

rbGenerate 10 (optional length)
- generate a password length of 10 character.

REQUIREMENTS
- Ruby
- Linux or Mac OS X
- Terminal Application ( gnome-terminal, terminal etc.)

Github Repo URL: https://github.com/halidaltuner/rbGenerate
Thanks,

Macos X Üzerine Rails, Nginx, MongoDB, Passenger Kurulumu

Bir süredir Pluwy‘nin geliştirmesi için Mac OS X üzerinde Ruby on Rails, Nginx, MongoDB kullanmaya başladım. Neden ruby kullandığımı ayrıntılı farklı bir yazıda anlatacağım. Ancak fikir oluşturması amacıyla “RubyConf X Keynote“u izleyebilirsiniz.

Mac OS X üzerinde Ruby yerleşik olarak geliyor. Dolayısıyla ruby haricindeki gereksinimleri kurmanız ve yapılandırmanız gerekiyor.

Öncelikle rails kurulumu için(terminal üzerinden);

[bash]gem install rails –include-dependencies[/bash]

Gem bu işletimi yürütürken epey bekleyebilirsiniz, şimdiden uyarayım :)

Nginx üzerinde ruby on rails framework’ü çalıştırmak için passenger kullanmamız gerekiyor. Eğer nginx yerine apache kullanıyorsanız mod_passenger modülünü kullanabilirsiniz.

[bash]gem install passenger[/bash]

Passenger kurulumundan sonra nginx kurulumu için yine terminal üzerinde;

[bash]sudo passenger-install-nginx-module[/bash] komutunu uyguluyoruz.

Çalıştırdığınız bu komut, 1-2 aşamada bazı kütüphanelerin ve yazılımların kontrolünü yapacaktır. Kontrol bittikten sonra nginx’i kurma şekliniz için 2 seçenekli bir soru sorulacak. Bu kısımda nginx’i otomatik kurmak(derlemek) için 1 yazarak devam ediyoruz. Eğer nginx’i kendiniz kurduysanız(daha önce) 2 yazarak nginx’in path’ini girmeniz gerekiyor.

Biz 1. seçenek ile devam ediyoruz.

İnternet bağlantınız ve bilgisayarınız yoğunluğuna göre bu işlem 5-10 dakika arası sürebilir. Kurulum tamamlandıktan sonra, nginx’e ait konfigürasyon dosyalarını düzenleceğiz.

[bash]sudo vim /opt/nginx/conf/nginx.conf [/bash] komutuyla conf dosyasını açıp şu satırları eklemeniz gerekiyor.

[bash]

server
{
listen 8080;
server_name halid.local;
root /Users/halidaltuner/Sites/halid/public;
charset utf-8;
passenger_enabled on;
}

[/bash]

Bu kısımda dikkat etmeniz gereken husus, mevcut server{} tanımlamasının olup olmadığı. Eğer böyle bir tanımlama varsa değiştirin.

Ben yerleşik olarak 80 portu üzerinde yerleşik bir web sunucusu kullandığım için 8080 portunu dinlemeye ayarladım. Dilediğiniz farklı bir port’u bu işlem için tahsis edebilirsiniz.

server_name tanımlaması, tarayıcı üzerinden uygulamanıza erişimde kullanacağınız lokal isim.

Not: Bu isimle eklediğiniz tanımlamayı /etc/hosts dosyanıza 127.0.0.1 halid.local şeklinde eklemeniz gerekiyor.

root tanımlaması rails uygulamanızın bulunduğu public klasörüne yapılmalıdır. Kendi isteğinize göre değiştirebilirsiniz.

charset tanımlamasıyla uygulama içerisinde kullanacağınız karakter setini tanımlamanız gerekiyor.

passenger_enabled parametresiyle ise uygulamanızın passenger desteğiyle deploy edilmesi gerektiğini tanımlıyoruz.

Bu şekilde dosyayı kaydedin.

Son olarak mongoDB kurulumu için MongoDB Downloads sayfasından stable olan son sürümü indirip, kuruyoruz.

[bash]
curl -O http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-1.6.5.tgz
tar xzf mongodb-osx-x86_64-1.6.5.tgz
sudo mv mongodb-osx-x86_64-1.6.5 /usr/local/mongodb
sudo mkdir /usr/local/mongodb_data /var/log/mongodb
sudo chown -R root /usr/local/mongodb
[/bash]

Bu işlemden sonra conf. dosyasını oluşturuyoruz.

[bash]
sudo vi /usr/local/mongodb/mongod.conf
[/bash]

Dosya içerisine şu satırları ekleyip, kaydediyoruz.

[bash]
dbpath = /usr/local/mongodb_data
bind_ip = 127.0.0.1
[/bash]

MongoDB’nin otomatik olarak başlaması için  daemon oluşturuyoruz.

[bash]
sudo vim /Library/LaunchDaemons/org.mongodb.mongod.plist
[/bash]

Oluşturduğumuz dosya içerisine şu adreste bulunan satırları ekleyip, kaydediyoruz.

http://pastebin.com/k4K5zjbK

Ayarların aktif olması için şu komutu çalıştırıyoruz;
[bash]sudo launchctl load /Library/LaunchDaemons/org.mongodb.mongod.plist[/bash]

MongoDB’nin çalışıp çalışmadığını öğrenmek için; http://localhost:28017 adresini ziyaret edebilirsiniz.

Örnek rails projesini oluşturmak için ilgili path içerisinde;
[bash]rails halid[/bash] komutunu çalıştırmanız gerekiyor.

Tüm işlemlerin doğru olduğuna eminseniz, uygulamaya tarayıcı üzerinden erişmeye çalıştığınızda şu şekilde bir ekran görüntüsüyle karşılaşmalısınız.

Bir sonraki makalede rails – mongodb bağlantısı hakkında birşeyler karalayacağım.

Görüşmek üzere,

Kaynaklar:

http://shiftcommathree.com/articles/how-to-install-mongodb-on-os-x

http://developer.apple.com/tools/rubyonrails.html