2012-12-27 4 views
0

현재 Mac Mini 서버를 Mountain Lion으로 업그레이드 할 때 PgAdmin을 사용하여 다시 만든 PostgreSQL 데이터베이스를 사용하는 Rails 3.2.9 응용 프로그램이 있습니다. 데이터베이스는 9.2.1 버전으로 만들어졌습니다. 나는 내가 사용했던 PgAdmin의 버전이 그 버전 번호로 생성되었다고 생각한다. Mountain Lion으로 업그레이드 한 Postgres 버전 9.1.4 만있었습니다. psql의 버전을 내 데이터베이스 파일의 버전과 일치시키는 방법에 대한 또 다른 질문을 제출하여 백그라운드 작업을 실행하기 위해 queue_classic을 구현하는 데 문제가 발생했습니다. 이 시점에서 저는 어떤 응답도받지 못했습니다. 나는 계속 postgres.app에 대해보고 배웠다. 현재 버전은 PostgreSQL 9.2.2를 실행 중입니다.기존 레일에 문제가 있음 3.2.9 postgres.app로 만든 데이터베이스에

현재 데이터베이스의 데이터를 CSV 파일로 복사했습니다. 또한 postgres.app에서 psql 터미널을 사용하고 Rails 응용 프로그램에서 사용하려는 새 데이터베이스를 만들었습니다. config/database.yml에서 개발 데이터베이스 & 테스트 데이터베이스의 정의를 변경하여 완전히 테스트 할 때까지 프로덕션 데이터베이스를 엉망으로 만들지 않기로 결정했습니다. 다른 이름을 알고 있는지 확인하기 위해 다른 이름의 데이터베이스를 만들어서 Rails 응용 프로그램이 postgres.app로 만든 데이터베이스를 가리키고 있는지 확실히 알 수 있습니다.

postgres.app 웹 사이트에 명시된대로 bashrc에서 내 경로가 변경되었습니다. 어떤 psql을 사용하면 postgres.app 버전 9.2.2를 올바르게 가리 킵니다. config/database/yml을 postgres.app의 웹 사이트에 따라 다음과 같이 변경했습니다.

development: 
    adapter: postgresql 
    encoding: unicode 
    database: newname_devl 

정상적으로 localhost : 3000을 사용하여 Rails 응용 프로그램을 실행할 때 응용 프로그램이 원래 데이터베이스를 가리키고 있습니다. 나는 rake db를 수행하지 않았기 때문에 오류를 예상하고있었습니다. 새 데이터베이스에서 모든 테이블을 재 구축하기 위해 마이그레이션하십시오.

어쨌든 PostgreSQL 버전과 일치하도록 내 PostgreSQL 데이터베이스 버전을 가져올 수 있어야합니다. 그러나 여기에서 어디로 가야할지 모르겠습니다. 나는 계속 찾고있을 것이다.

도움을 주시면 감사하겠습니다.

UPDATE 2012년 12월 31일 중부 표준시 오전 5시 50분 GMT-6

나는 아래의 명령을 시도했다. 이것은 전에 시도한 것입니다. 명령 아래에 나열된 오류 (사용자 이름이 마스크 된)가 표시됩니다.

psql -h localhost 
psql: FATAL: role "username" does not exist 

"username"역할을 생성하고 명령을 다시 시도했습니다. 다음과 같은 오류가 발생했습니다.

psql: FATAL: database "username" does not exist 

다음 명령을 시도하기로 결정했습니다. 명령에 오류가 있습니다.

psql -h localhost -U _postgres 
psql: FATAL: database "_postgres" does not exist 

데이터베이스 _postgres가 존재하지 않습니다. 데이터베이스 포스트 그레스 않습니다.

답변

1

database.yml을 올바른 이름으로 업데이트 한 경우 잘못된 데이터베이스에 액세스하는 방법이 확실하지 않습니다. database.yml에서 데이터베이스 이름을 "foobar123"으로 변경하거나 이전의 Postgres 또는 새로운 Postgres에 긍정적 인 일부 이름이 존재하지 않으면 어떻게됩니까?

+0

postgres.app에서 만든 이름이 현재 데이터베이스와 다릅니다. 확인하기 전에 database.yml을 저장했음을 확인했습니다. 테이블이 없기 때문에 새 데이터베이스를 가져 오려고 할 때 오류가 발생할 것으로 예상했습니다. psql 버전은 postgres.app에 있습니다.내 앱은 내가 한 일을 무시했다. 내 Mac Mini Server에 설치된 psql에있는 데이터베이스를 다시 작성하여 psql과 동일한 버전으로 만들 것이라고 생각합니다. 나는 psql 터미널에 대해 배우고있다. 데이터베이스를 생성하기 위해 수퍼 유저로서 psql에 어떻게 로그인합니까? 나는 테이블을 관리하는 데에만 사용했습니다. –

+0

"psql -h localhost"는 수퍼 유저로 로그인해야합니다. 또는 "psql -h localhost yourdbname"을 사용하여 데이터베이스에 액세스하십시오. – bratsche

+0

방금 ​​내 결과로 설명을 업데이트했습니다. psql은 기존 데이터베이스를 유지 보수 할 수만있는 방법으로 설치되어있는 것 같습니다. PostgeSQL을 활용하는 백그라운드 작업에 대한 보석 queue_classic을 구현하고 구현할 수 있기를 바랬지 만이 버전 충돌로 인해이 작업을 사용할 수 없습니다. –