2014-02-05 2 views
2

우분투에 레일즈 앱을 설치하여 주 개발자를 귀찮게하는 번거 로움을 겪지 않고 저수준 작업을 해보려고합니다. 그러나 프로세스의 마지막 단계에서 레일스 명령을 실행합니다. localhost : 3000에 랜딩 페이지를 가져오고 데이터베이스에 직접 호출하지 않고 페이지를 통과 할 수 있습니다. 그러나 db에서 데이터를 가져 오는 페이지로 이동하면 다음과 같은 오류가 발생합니다.localhost에서 postgresql 문제로 레일스 프로젝트 설정하기

ActiveRecord::StatementInvalid in WantsController#new 

PG::Error: ERROR: relation "geometry_columns" does not exist 
LINE 1: SELECT * FROM geometry_columns WHERE f_table_name='wants' 
        ^
: SELECT * FROM geometry_columns WHERE f_table_name='wants' 

지금 내가 뭘 잘못하고 있는지 알지 못합니다. database.yml을

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" >> /etc/apt/sources.list' 
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - 
sudo apt-get update 
sudo apt-get install postgresql-9.3-postgis pgadmin3 postgresql-contrib postgresql-server-dev-9.3 
sudo -u postgres psql 
    postgres=# CREATE EXTENSION adminpack; 
    postgres=# CREATE EXTENSION postgis; 
    postgres=# \q 
    postgres=# CREATE USER abc WITH PASSWORD 'abc'; 
    postgres=# CREATE DATABASE abc; 
    postgres=# CREATE DATABASE abc_development; 

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U abc -d abc abc-20131217-09.pgdmp 
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U abc -d abc_development abc_development-20131217-09.pgdmp 

그런 다음 복제 된 자식 폴더로 이동 번들을 실행하고 레일의 다음

것 : 여기 내가 데려 갈거야 단계는 그것이

development: &dev 
    # adapter: postgresql 
    database: abc_development 
    username: abc 
    password: abc 
    host: localhost 
    encoding: utf8 
    postgis_extension: true 
    schema_search_path: public,postgis 
    adapter: postgis 
    encoding: utf8 
    postgis_extension: postgis 

production: 
    adapter: postgis 
    database: abc 
    username: abc 
    password: oTSZ1gQdwsFXWIUZsehj 
    host: localhost 
    encoding: utf8 
    postgis_extension: true 
    schema_search_path: public,postgis 
    postgis_extension: postgis 

어떤 아이디어 잘못되어가는? 도움을 많이 주시면 감사하겠습니다.

답변

0

오류 메시지는 해당 테이블이 데이터베이스에 존재하지 않는다고 알려줍니다. 마이 그 레이션 (기본적으로 레일즈가 생성 할 수있는 sql의 덩어리)을 생성 한 다음 rake db:migrate을 실행하여 데이터베이스에서 마이 그 레이션을 실행해야합니다.

the rails guide to migrations에서 이전에 대해 자세히 읽을 수 있습니다.

+0

주사위가 없습니다. 마이그레이션 파일들 (git clone은 완전히 작동하는 웹 사이트에서 온 것입니다. 따라서 데이터베이스 덤프를 수행해야합니다)을 포함하여 geometry_columns를 생성해야하지만 rake db를 실행할 때 : 갈퀴가 중단되었습니다. PG : 오류 : ERROR : 관계 "geometry_columns는" LINE 1이 존재하지 않습니다 WHERE f_table_name = geometry_columns SELECT * FROM 'schema_mi ...^ : geometry_columns SELECT * FROM WHERE f_table_name ='schema_migrations ' 모든 아이디어를 다음 ? 내가 어디로 잘못 가고 있니? – user3276029

1

좋아, 어떻게 든 해결했습니다. 트릭을 실제로 알지는 못했지만 기본적으로 "abc"사용자에게 수퍼 유저 권한을 부여한 다음 db : create, db : migrate를 실행하고 사이트 백업에서 db 파일을 가져 오며 마이그레이션을 다시 실행해야했습니다.

+0

이 문제도 해결되었지만 데이터베이스 사용자가 필요한 수퍼 유저 권한을 수행하려고 시도했는지 알 수 없습니다. 나는 더 나은 이해를 가진 누군가가 그것에 대해 밝힐 수 있기를 바랍니다. – Heliostatic

관련 문제