Aplikacja Rails ze wspólną bazą z PHP

Witam!

Jak ugryźć temat aplikacji w Rails, która ma korzystać ze wspólnej bazy z już działającą aplikacją PHP…?
Zawsze tworzyłem aplikację Rails od podstaw (łącznie z bazą).

Będę wdzięczny za wskazówki.

Yyyy… a w czym problem?

Albo w database.yml wskazujesz na bazę “pehapową” i jedziesz (tylko odpowiednie modele trzeba potworzyć, być może mają też nazwy tabel lub kluczy głównych odstające od railsowej konwencji - patrz dokumentacja ActiveRecord::Base) - to wariant z korzystaniem wyłącznie z owej “pehapowej” bazy.

A jeśli masz aplikację ze “swoją” bazą i tylko niektóre modele trzymane są w “obcej” bazie, to tworzysz w database.yml odpowiedni wpis (np. “foreign_base_development”) i potem na dole environement.rb:
MójModel.establish_connection(“foreign_base_development”)
czy oczywiście w wersji poważniejszej:
MójModel.establish_connection(“foreign_base_#{ENV[‘RAILS_ENV’]}”)

do pogooglania:
http://wiki.rubyonrails.org/rails/pages/HowtoUseMultipleDatabases
activerecord estabilish_connection

[quote=newman]Jak ugryźć temat aplikacji w Rails, która ma korzystać ze wspólnej bazy z już działającą aplikacją PHP…?
Zawsze tworzyłem aplikację Rails od podstaw (łącznie z bazą).

Będę wdzięczny za wskazówki.[/quote]
Nie mam żadnych doświadczeń w tym temacie, ale możesz generować model o nazwie jak tabela, albo

Możesz skorzystać z:
set_table_name
set_primary_key

ale w każdym przypadku pewnie pojawią się problemy (walidacja, błędy, brak kolumn created_at/on updated_at/on)

pozdrawiam

Problemu jeszcze nie ma :wink:
…ale właśnie chcę poznać ewentualne, które mogą się pojawić

Niepotrzebnie straszysz kolegę. Nie powinno być większych problemów, tylko będzie musiał dodać kilka linijek konfiguracyjnych do modeli. Błędy walidacji nie mają nic wspólnego z tabelką. Brak created_at/on, updated_at/on - od kiedy wymagane jest istnienie tych kolumn?

Tak jak Radarek pisze. “Legacy” tablice / bazy nie robią większych problemów.

Tak, wiem o kolumnach. W sumie nie mam doświadczenia. Te sprawy przyszły mi do głowy.

Marcin daj znać jak Ci poszło.

pozdrawiam