2014-10-30 2 views
0

개발 및 테스트에서 잘 작동하는 Rails 앱이 있지만 원격 Postgresql 데이터베이스를 사용하도록 구성된 프로덕션 환경에서는 테이블을 만들지 못하고 있습니다. 데이터베이스가 설정되어 작동합니다. 프로덕션 서버에서 psql을 통해 database.yml에 지정한 것과 동일한 구성을 사용하여 연결할 수 있습니다. 그런 다음 명령을 사용하여 테이블을 만들고 문제를 만들 수 있습니다. 나는 데이터베이스 관련 레이크 작업을 실행하면PG :: UndefinedTable - 다음 문제 해결 단계?

는, 모든 것이 좋아 보인다 없습니다 :

$ rake db:reset 
-- create_table("users", {:force=>true}) 
    -> 0.0293s 
-- add_index("users", ["username"], {:name=>"index_users_on_username", :unique=>true}) 
    -> 0.0428s 
-- initialize_schema_migrations_table() 
    -> 0.0212s 
-- create_table("users", {:force=>true}) 
    -> 0.0097s 
-- add_index("users", ["username"], {:name=>"index_users_on_username", :unique=>true}) 
    -> 0.0058s 
-- initialize_schema_migrations_table() 
    -> 0.0092s 

오류를. 그러나 테이블은 만들어지지 않았습니다.

는 내가 Nginx에 오류 로그를 조사하여이 문제를 발견,하지만 오류를 재현 할 수있는 가장 쉬운 방법은 콘솔을 발사 앱의 유일한 모델로 아무것도 할 수 있습니다 : 나는 또한 ssh를했습니다

$ rails console production 
Loading production environment (Rails 4.2.0.beta4) 
2.1.3 :001 > all_users = User.all 
PG::UndefinedTable: ERROR: relation "users" does not exist 
LINE 1: SELECT "users".* FROM "users" 
         ^

데이터베이스 서버에 데이터베이스를 검사하고 \z으로 데이터베이스를 검사했지만 거기에 존재하지 않습니다.

이전에 권한 오류가 발생했기 때문에 응용 프로그램이 데이터베이스 서버에 제대로 연결되어 있다고 생각합니다. 그러나 나는 어떻게 확신하는지 모른다. 그리고 내가 제대로 연결하고 있음을 확인하면 거기에서 어디로 가야합니까?

감사합니다.

+1

접속하고있는 동일한 데이터베이스에 대해'db : reset'이 실행되고 있습니까? –

+1

액세스 할 수 있으면 $ PGDATA/pg_log /에있는 postgresql 로그 파일을 확인하십시오. 응용 프로그램이보고하지 않는 오류가 발생할 수 있습니다. – harmic

+0

전적으로 액세스 할 수 있습니다. 나는 그것을 조사했고, 기본적으로 같은 오류가있다. 그래서 이것으로 구성이 정상임을 확인했다고 가정합니다. 즉, DB 서버에서 오류가 발생하고 있습니다. 웹 서버에 표시되지 않은 한 줄의 세부 정보가 조금 더 있습니다. '2014-10-30 19:03:06 EDTERROR : 관계 "users"는 문자 323에 존재하지 않습니다 .' – hoverbikes

답변

1

mu의 제안에 따라 명시 적으로 환경을 지정하여 rake db:reset으로 실행했습니다.

PG::ObjectInUse: ERROR: database "database_name" is being accessed by other users 
DETAIL: There are 1 other session(s) using the database. 

내가 데이터베이스 서버, killed all active connections에 ssh'd하고 서비스를 다시 시작 :

rake db:reset RAILS_ENV=production --trace 

문제의 중심에 오류를 밝혔다.

웹 서버에서 돌아가서 위의 레이크 작업을 다시 수행하고 작동했습니다. 감사합니다 mu 및 harmic!

관련 문제