srinivasan.anand
11/29/2007 10:28:00 AM
Hi all,
I am facing with a new type of problem with railroad,
explained below
=20
1. I am using an oracle database in my application. In
the database.yml file, I am having different schema connections to the
same database.like
=20
development:
database: real_database
username: schema_name1
password: ************
adapter: oracle
=20
abcd_development:
database: real_database
username: schema_name2
password: ************
adapter: oracle
=20
legacy_development:
database: real_database
username: schema_name3
password: **************
adapter: oracle
=20
u can observe that only the usernames/schemas are different but the
database is the same for all the connections.=20
=20
And according to the rails-database conventions when defining multiple
connections in database.yml, we have to create separate models for each
of the connections like
=20
reporting.rb
class Reporting < ActiveRecord::Base
connection =3D "legacy_#{ENV['RAILS_ENV']}"
establish_connection connection.to_sym
end=20
=20
where ENV['RAILS_ENV'] is development. (configured)
=20
and suppose that there is a table xyz under this schema (schema_name3),
then I have to inherit from this class and define the model for the xyz
table like
=20
xyz.rb
class Xyz < Reporting
set_table_name 'xyzs'
set_primary_key 'xyz_id'
end
=20
so whenever the xyz table is called, it automatically connects to the
legacy_development connection and proceeds. Right ??
=20
This is the scenario. (Hope my understanding is proper...!@#$#)
=20
=20
2. Now I am trying to run the railroad under my
application having these database connections.=20
=20
I think , what is happening is, the railroad is trying to find a table
named reportings , but Reporting is just the connecting model for the
legacy_development connection. The error which I am getting is=20
=20
R09222:~/project1> railroad -M models
(eval):3:in `describe': "DESC reportings" failed; does it exist?
(RuntimeError)
from
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/
connection_adapters/oracle_adapter.rb:316:in `columns'
from
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/
base.rb:763:in `columns'
from
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/
base.rb:782:in `content_columns'
from
/usr/local/lib/ruby/gems/1.8/gems/railroad-0.4.0/lib/railroad/models_dia
gram.rb:60:in `process_class'
from /usr/local
=20
So It is clear that it is trying to find a table named reportings under
this schema.=20
=20
When I exclude this file (reporting.rb), then itz giving another error
corresponding to the files inheriting the "Reporting" class like=20
=20
railroad -M -e reporting.rb models
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support
/dependencies.rb:266:in `load_missing_constant': uninitialized constant
Reporting (NameError)
from
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support
/dependencies.rb:452:in `const_missing'
from
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support
/dependencies.rb:464:in `const_missing'
from ./app/models/xyz.rb:1
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
=20
=20
How to make railroad understand that reporting.rb is not a table but
just a connection.
=20
So how to solve this. Is the behaviour of
railroad is like this only or is there any alternative for this.=20
Please help me.=20
=20
THNX in advance for the help.
=20
=20
Thanks and Regards,
S. Anand.
This message is for the designated recipient only and may contain =
privileged, proprietary, or otherwise private information. If you have =
received it in error, please notify the sender immediately and delete =
the original. Any other use of the email by you is prohibited.