기본 정보루비 - mysql2 데이터베이스
에 연결하는 데 문제는 내가 레일 응용 프로그램을 dotcloud.com에서 호스팅 MySQL 데이터베이스에 연결되는있습니다. 아래는
production: adapter: mysql2 host: <host> port: <port> database: <database_name> username: <username> password: <password>
잘 작동 여기까지
, 내가 에서 데이터베이스의 레코드에 액세스 쿼리와 물건을 할 수있는, 내 database.yml을 파일처럼 보이는 방법이다.는 지금은 다른 레일 와 동일한 데이터베이스에 연결해야 응용 프로그램 B, 그래서 나는 단순히 B의 database.yml을 파일로 위의 동일한 내용을 복사하여 붙여 넣습니다. 그러나 제작시 레일 콘솔에 들어가려고하면 데이터베이스에 액세스 할 수없는 것처럼 보입니다. 예를 들어 사용자 표가있는 경우 NameError: uninitialized constant User
이라고 표시됩니다.
이것은 액세스 제어 문제입니까? 이 문제를 디버깅하려면 어떻게해야합니까?
모든 조언을 이해하십시오.
업데이트
그래서 나는 복사 에서B에 .rb 및 스키마 파일을 붙여 넣습니다. 그러나 레일 콘솔에서 데이터베이스에 액세스하려고하면 uninitialized constant ActiveRecord (NameError)
이 표시됩니다. 누구나 어떻게 알아?
응용 프로그램이 동일한 서버에 호스팅되어 있습니까? 그렇지 않으면 호스트 이름이나 mysql 액세스에 차이가있을 수 있습니다. 예를 들어 프로덕션 시스템에서 localhost 호스트를 사용하면 mysql 서버가 동일한 서버에 있음을 나타냅니다. 그러나 연결 세부 정보를 복사하고 다른 서버에서 사용하면 다른 데이터베이스 서버에 연결할 수 있습니다. –
위에서 언급 한 연결 정보를 복사했습니다. 그래서 나는 그것이 서버에 관계없이 지정된 데이터베이스에 연결해야한다고 생각하니? A와 B 모두 Dotcloud에서 호스팅됩니다. –
@ JohnLee 응용 프로그램이로드 될 때 environment.json 또는 environment.yml에서 데이터베이스 자격 증명을 받고 있습니까? 아니면 database.yml에서 해당 값을 하드 코딩하고 있습니까? –