1

基本信息

我有一个 Rails 应用程序A,它连接到托管在 dotcloud.com 上的 mysql 数据库。下面是我的 database.yml 文件的样子,

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

直到这里它工作正常,我可以从A访问数据库中的记录,做查询和其他东西。

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

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

感谢任何建议。


更新

所以我将 .rb 和模式文件从A复制并粘贴到Buninitialized constant ActiveRecord (NameError)但是,当我尝试在 Rails 控制台中访问数据库时,我得到了。有谁知道怎么做?

4

3 回答 3

1

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

:)

于 2012-05-17T20:41:46.510 回答
0

您是否为应用程序 B 运行了迁移?当然,数据库已经建立,但 App B 没有模式的副本。因此,您可以在 App B 中运行迁移,也可以将架构从 App A 复制到 App B。

于 2012-05-15T00:44:50.063 回答
0

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

ActiveRecord::Base.connection.tables

这应该表明您是否至少可以正确访问数据库。

于 2012-05-15T01:09:20.087 回答