1

Базовая информацияРубин на Rails - Возникли проблемы пытаются подключиться к базе данных mysql2

У меня есть рельсы App , который подключается к базе данных MySQL, размещенных на dotcloud.com. Ниже, как мой файл database.yml выглядит,

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

Пока здесь работает отлично, я могу получить доступ к записи в базе данных с , делать запросы и прочее.

Теперь у меня есть еще рельсы приложение B, который должен быть подключен к той же базе данных , поэтому я просто скопировать и вставить те же детали выше в файл database.yml в B. Однако, когда я попытался войти в консоль rails на производстве, я не могу получить доступ к базе данных. Например, если бы у меня была таблица пользователей, она просто скажет NameError: uninitialized constant User.

Это проблема контроля доступа? Как мне следует отладить эту проблему?

Цените любой совет.


Update

Я скопировать и вставить .RB и схемы файлов из к B. Однако при попытке доступа к базе данных в консоли rails я получаю uninitialized constant ActiveRecord (NameError). Кто-нибудь знает, как это сделать?

+0

Являются ли приложения размещены на одном сервере? Если нет, это может быть разница в именах хостов или mysql. Например, использование хоста localhost на производственной машине указывает, что сервер mysql находится на одном сервере. Однако копирование сведений о подключении и использование их на другом сервере приведет к подключению к другому серверу базы данных, если таковой имеется. –

+0

Я скопировал детали соединения, включая те, о которых я говорил выше. Поэтому, я думаю, он должен подключаться к базе данных, указанной мной независимо от сервера? Оба A и B размещены в Dotcloud. –

+0

@JohnLee Получаете ли вы свои учетные данные базы данных из среды environment.json или environment.yml, когда ваше приложение загружается, или вы жестко кодируете эти значения в вашей базе данных.yml? –

ответ

1

В итоге я создал новое приложение для рельсов и снова настроил все. Скопируйте ту же конфигурацию database.yml, затем выполните rake db: migrate, затем включите необходимые файлы модели, перейдите в консоль rails и теперь она работает.

:)

0

Вы выполнили миграцию для приложения B? Конечно, база данных уже настроена, но приложение B не имеет копии схемы. Таким образом, вы можете либо запустить миграции в App B или скопировать схему из App A в App B.

0

Попробуйте перечислить ваши таблицы с помощью:

ActiveRecord::Base.connection.tables 

Это должно показать, если вы можете по крайней мере, добраться до базы данных правильно.

+0

Спасибо за отличный отладочный наконечник! Это помогло мне. Я использовал «ActiveRecord :: Base.connection.select_all» («SHOW TABLES»), который не попадал в ошибку, так как я обновился до Rails 3.1. – Jason

+0

Джейсон - рад, что я смог помочь. Если бы мой ответ был внесен, соответствующий ответ был бы продолжением, если вы считаете это уместным. –

 Смежные вопросы

  • Нет связанных вопросов^_^