# Railroad-database problem

**URL:** <https://www.ruby-forum.com/t/railroad-database-problem/121616>\
**Category:** Ruby\
**Created:** [November 29, 2007, 11:28am UTC](https://www.ruby-forum.com/t/railroad-database-problem/121616 "2007-11-29T11:28:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [November 29, 2007, 11:28am UTC](https://www.ruby-forum.com/t/railroad-database-problem/121616/1 "2007-11-29T11:28:46Z")

</div>

Hi all,

```
        I am facing with a new type of problem with railroad,

```

explained below

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

development:

database: real\_database

username: schema\_name1

password: \*\*\*\*\*\*\*\*\*\*\*\*

adapter: oracle

abcd\_development:

database: real\_database

username: schema\_name2

password: \*\*\*\*\*\*\*\*\*\*\*\*

adapter: oracle

legacy\_development:

database: real\_database

username: schema\_name3

password: \*\*\*\*\*\*\*\*\*\*\*\*\*\*

adapter: oracle

u can observe that only the usernames/schemas are different but the  
database is the same for all the connections.

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

reporting.rb

class Reporting \< ActiveRecord::Base

connection = “legacy\_#{ENV[‘RAILS\_ENV’]}”

establish\_connection connection.to\_sym

end

where ENV[‘RAILS\_ENV’] is development. (configured)

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

xyz.rb

class Xyz \< Reporting

set\_table\_name ‘xyzs’

set\_primary\_key ‘xyz\_id’

end

so whenever the xyz table is called, it automatically connects to the  
legacy\_development connection and proceeds. Right ??

This is the scenario. (Hope my understanding is proper…!@#$#)

1. 

```
              Now I am trying to run the railroad under my

```

application having these database connections.

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

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

```

So It is clear that it is trying to find a table named reportings under  
this schema.

When I exclude this file (reporting.rb), then itz giving another error  
corresponding to the files inheriting the “Reporting” class like

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’

How to make railroad understand that reporting.rb is not a table but  
just a connection.

```
                    So how to solve this. Is the behaviour of

```

railroad is like this only or is there any alternative for this.

```
                    Please help me.

                    THNX in advance for the help.

```

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.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [November 29, 2007, 7:36pm UTC](https://www.ruby-forum.com/t/railroad-database-problem/121616/2 "2007-11-29T19:36:02Z")

</div>

On Nov 29, 7:28 am, removed\_email\_address@domain.invalid wrote:

> Hi all,
> 
> ```
> I am facing with a new type of problem with railroad,
> 
> ```
> 
> explained below
> 
> 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

Can you first try your success accessing your classes from script/  
console ?

You’re trying to get too many things in one row, and sometimes you  
missed the spot.

Tryo from the console grabbing the model information, and if it works  
_then_ look for problems in railroad.

…

> How to make railroad understand that reporting.rb is not a table but  
> just a connection.

Reporting in a table, why then is inside app/models? and inherit from  
ActiveRecord::Base ?

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [November 29, 2007, 10:11pm UTC](https://www.ruby-forum.com/t/railroad-database-problem/121616/3 "2007-11-29T22:11:10Z")

</div>

unknown wrote:

> Hi all,
> 
> ```
> I am facing with a new type of problem with railroad,
> 
> ```
> 
> explained below
> 
> 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

A database can only have one schema definition from a rails perspective.

From the configuration file it appears that you are attempting to have  
different users access the same db with different privilege sets. If  
this is the case, then make sure that both users can see the “Reporting”  
table.

Secondly, as suggested earlier, you should check the console to make  
sure that you indeed have a table named: “reportings”…

Lastly, please post rails or “railroad” related questions to the rails  
forum.

hth

ilan

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [November 30, 2007, 1:33pm UTC](https://www.ruby-forum.com/t/railroad-database-problem/121616/4 "2007-11-30T13:33:07Z")

</div>

Hi,  
Thanks for the valuble help. I have anyhow solved the problem.  
The problem was that, as I have correctly guessed the rails was  
expecting a reportings table. But I need to tell the rails that  
reportings is not a table, but only a connection. I did that by  
including the line “self.abstract\_class=\>true” in the reportings.rb file  
so that the rails does not expect a table out of it.

Thanks and Regards,  
S. Anand.
