Ruby on Rails - 尝试连接到mysql2数据库时遇到问题

时间:2012-05-15 00:37:35

标签: mysql ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 dotcloud

基本信息

我有一个rails app A ,它连接到dotcloud.com上托管的mysql数据库。下面是我的database.yml文件的样子,

production:
  adapter: mysql2
  host: <host>
  port: <port>
  database: <database_name>
  username: <username>
  password: <password>

直到这里工作正常,我可以从 A 访问数据库中的记录,查询和填充。

现在我有另一个需要与 A 连接到同一数据库的rails应用 B ,所以我只需将上面完全相同的详细信息复制并粘贴到数据库中 B 中的.yml文件。但是,当我试图在生产中进入rails控制台时,我似乎无法访问数据库。例如,如果我有一个用户表,它只会说NameError: uninitialized constant User

这是一个访问控制问题吗?我该如何调试此问题?

感谢任何建议。


更新

因此,我将.rb和架构文件从 A 复制并粘贴到 B 。但是,当我尝试在rails控制台中访问数据库时,我得到uninitialized constant ActiveRecord (NameError)。谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

我最终创建了一个新的rails应用程序,并再次设置所有内容。复制相同的database.yml配置然后执行rake db:migrate,然后包含必要的模型文件,进入rails控制台,它现在可以正常工作。

:)

答案 1 :(得分:0)

您是否为app B运行了迁移?当然,数据库已经设置,但App B没有架构的副本。因此,您可以在App B中运行迁移,也可以将架构从App A复制到App B.

答案 2 :(得分:0)

尝试使用以下方式列出您的表格:

ActiveRecord::Base.connection.tables

如果您至少可以正确访问数据库,则应该显示。