복붙노트

[RUBY-ON-RAILS] 루비 온 레일스와 함께 사용하기 위해 창에 포스트 그레스 설치

RUBY-ON-RAILS

루비 온 레일스와 함께 사용하기 위해 창에 포스트 그레스 설치

현재 나는 다음과 같은 오류가 발생합니다 :

내 응용 프로그램은 데이터베이스에 액세스하려고 할 때.

나는이 비슷한 요청이 그래서 sqlite가 3 이상 (건강한 것은 아마 내 생각) 때문에 포스트 그레스의 엄격한 요구 사항의 Heroku가에서 생산까지 밀어 내 응용 프로그램 규칙적인 휴식과 같은 포스트 그레스에 대한 내 SQL 호출을 테스트하고 싶어 창 (7)하시기 바랍니다에 레일에 루비와 함께 사용할 포스트 그레스를 설치하기위한하지 아웃 날짜의 튜토리얼. 나는 2 비트 시간 후에 다운로드하고 설치 만의 빠른 20분있을 거라고 생각 나는 아직 매우 근접하다고 생각하지 않습니다. 지금까지 나는했습니다 :

다운로드 여기에서 포스트 그레스 버전 8.4.8-1을 설치

C : 내 환경 변수를 (사용자에 대한) 경로가되도록 설정 \ Ruby192 \ 빈; C : \의 Program Files (x86) \ PostgreSQL의 \ 8.4 \ 빈

Gemfile :

RAN은 내 레일이 겉으로는 성공적으로 앱 설치 번들, 아직 유효성을 설치하는 쉬운 방법을 발견하지 않았습니다.

여기 제안 database.yml을 설정 :

development:
  adapter: postgresql
  database: db/development
  username: postgres
  password: secret
  host: localhost
  encoding: UTF8
  pool: 5
  timeout: 5000

나는 어디 선가하고 편집합니다 설정 파일에에에 연결하는 것 그것 (?)에 연결, 어쩌면 또한 포스트 그레스 서버를 시작, 포스트 그레스의 사용자 이름과 암호를 설정해야하고 내 로컬 IP 주소에 넣어 알고 의 다른의 .conf 파일 중 하나 'C : \의 Program Files (x86) \ PostgreSQL의 \ 8.4 \ 데이터'등 ...

있는 또한 놀랍도록 유용 SQLite는 관리자, 파이어 폭스 플러그인있다, 나는 레일 부드러운 저를했다 생각 나는 것들을 생각 이상이다 또는 실제로 설정하기 상당히 까다 롭습니다 난 그냥 sqlite3를 다시 가야하나요?

난 아직도 설치하고 레일에 대한 포스트 그레스를 사용하지만, 지금까지 단지 내가에 / 보는 물건의 가장 혼란 한에 초보자 가이드 검색하고있어 다음과 같이 다음과 같은 시도,이,이,이,이 (스노우 레오파드) 이 (리눅스).

모든 포인터는 많이 주시면 감사하겠습니다. 감사!

제임스

해결법

  1. ==============================

    1.레일 3 (3.0.7) 프로젝트 PostgreSQL 데이터베이스로 사용하기 위해 윈도우 7에 포스트 그레스를 설치하기위한 접근 방법.

    레일 3 (3.0.7) 프로젝트 PostgreSQL 데이터베이스로 사용하기 위해 윈도우 7에 포스트 그레스를 설치하기위한 접근 방법.

    서문 (당신은이 비트를 건너 뛸 수 있습니다)

    지적 할 수있는 제일 먼저 포스트 그레스는 .sqlite3에서 단지 다른 파일 확장자되지 않는 것입니다 그래서, 당신의 데이터베이스를 관리하기위한 전체 메커니즘입니다. 따라서 당신이 모두가 당신의 레일 응용 프로그램에 대한 데이터베이스로 포스트 그레스를 사용하도록 설정해야합니다있는 클라이언트 / 서버 모델을 가지고 있습니다.

    당신에게 Heroku에 배포하는 경우, 그들은 현재 포스트 그레스와 함께 사용할 때 중단됩니다 sqlite3를에 잘 있습니다 당신의 SQL 호출의 일부 그래서 포스트 그레스를 사용 : 거의 노력 SQLite는 설정 대 포스트 그레스 설정 상당한 고통을 겪고을위한 동기 부여. 그것은 Heroku가의 서버에 때보다 로컬로 오히려 디버그 포스트 그레스에 훨씬 쉽다.

    그래서 나는 다음과 같은 일을했다 : (면책 조항 : 나는 내가 한 일의 일부를 포함하도록 잊어 버린 수 있습니다 ... 다음과 같은 조언을 당신을 위해 작업을 한 다음 거대한하지 않는 경우 ... 작업에 얻을에 통증 떨어져 나에게 이상 48 시간 걸렸다 (2300 페이지!)하지만 매우 철저한 포스트 그레스 문서가 도움이 될 것입니다. 나는이 어쨌든을 다운로드 권하고 싶습니다 만약 당신이 내가 단지의 중요성을 이해하기 시작했다고 물질을 많이 가지고로 포스트 그레스를 사용하려고합니다 심각한.) (둘째 부인 :.. 나는 거의 확실히 그렇게하는 동안 포스트 그레스 데이터베이스에 20 개 합리적인 포스트 그레스 가이드 라인 노출 보안 구멍을 파괴 한이있는 경우 명백한 것들, 제발 편집 내 게시물과 경험이 풍부한 포스트 그레스 사용자 동의하지를)

    .Step 1. 다운로드는 여기에만 9.0.x는 윈도우 7에서 지원 될 것이라고 말했다 있기 때문에 여기에서 PostgreSQL의 v9.0.4-1를 설치 나는 모든 기본 옵션을 유지하고 포스트 그레스 설치 프로그램 메시지가 표시되면 바로 암호로 '비밀'사용 하나 (전적으로 반드시 인터넷에 그 정보를 공유의 결과가 무엇인지 다시 ... 곧 확신 발견 할 것이다). 당신은 3 단계에서이 암호가 필요합니다.

    .Step 2. 변경 환경 변수 경로 (시스템이 아닌 사용자 (이) 중요 여부를 확인하는 경우 아니에요)되도록 : C : \ 프로그램 파일 \의 PostgreSQL \ 9.0 \ 빈 (나는 따라서는 32 비트가 설치되지 않은 64 비트 윈도우에있어 N.B. 'C : \의 Program Files (x86) \ Postgres를 ...')

    폴더 또는 콘텐츠에 대한 모든 기본 읽기 전용 권한을 PostgreSQL의 \ 9.0 폴더를 제거하기 위해 변경 액세스 권한을 잊지 마십시오. (- 감사합니다 - 비록하지 가능성이 @Gavin 이러한 내용을 적용하려면 당신은 또한 당신의 컴퓨터를 다시 시작해야 할 수도 있습니다).

    새 데이터베이스를 만들려고하여 .Step 3. 시험 포스트 그레스 설치 : CREATEDB -U 포스트 그레스 mydb_as_postgres : 명령 줄에서. 당신은 당신이 (나는이 아닌지을 할 필요가 있는지 내가 기억할 수) 첫 번째 서버를 시작해야한다는 것을 할 수 있지 않은 경우는, 이제 암호를 입력하라는 메시지가되어야한다. \ 프로그램 파일 \의 PostgreSQL \ 9.0 \ 빈 : 가장 쉬운 방법은 C와 같은 폴더 어딘가에 'pgAdmin3.exe'해야 pgAdmin III,하는 것입니다. 당신이 pgAdmin III 시작하면 '개체 브라우저'라는 왼쪽에있는 패널이 있어야합니다. 이에서 나무가 함께합니다 :

    서버 그룹> 서버> PostgreSQL의 9.0 (로컬 호스트 : 5432)

    마우스 오른쪽 클릭 'PostgreSQL의 9.0 (로컬 호스트 : 5432)'와 '연결'을 선택합니다.

    은 CreateDB의 -U 포스트 그레스 mydb_as_postgres 명령 '(: 5432 로컬 호스트) PostgreSQL의 9.0'에 pgAdmin III 및 더블 클릭을 발사하여 확인할 수있는 'mydb_as_postgres'라는 새로운, 데이타베이스를 작성해야합니다. 이 아래가 있어야한다 :

    데이터베이스 (2)이 데이터베이스를 호출 mydb_as_postgres과 포스트 그레스를 나열해야하는

    나는 명령의 -U 포스트 그레스 부분은 당신이 포스트 그레스의 사용자로 로그인하지 않은 경우에 지정해야합니다 그것의 소유자로 포스트 그레스의 사용자로 데이터베이스를 생성하는 포스트 그레스를 알 수 있기 때문에 _as_postgres했다. 같은이야 당신은 지금 해당 사용자에 대한 포스트 그레스의 역할 '을 만들 필요가 다른 사용자로 로그인 할 때 응용 프로그램을 개발하고 유지하려는 그렇다면 (단계 참조 불구하고 나는 나의 모든 파일'AJames '사용자로 저장된 4).

    pgAdmin III 스루 .Step 4. (나를 위해하는가에) 로그인 역할을 마우스 오른쪽 버튼으로 클릭

    개체 브라우저> 서버 그룹> 서버> PostgreSQL의 9.0 (로컬 호스트 : 5432)> 로그인 역할

    로그인 역할을 마우스 오른쪽 버튼으로 클릭하고 '새 로그인 역할을 ...' 역할 이름으로, 나를 위해 AJames 당신의 운영 체제 사용자 이름에 넣어 '하고'역할 권한 '탭 아래 암호를 채우기, 나는 모든 상자를 검사하지만, 경험이 풍부한 포스트 그레스 사용자 가능성이 강하게에만'부모 역할에서 상속 권리 '를 확인하는 것이 좋습니다과'데이터베이스 개체를 만들 수 있습니다 '하지만 디버그 나는 또한 단지의 경우, '역할을 만들 수 있습니다'는 '슈퍼 유저'와 체크 그래서 포스트 그레스에서 SQL 호출을 레일에 m은하지 숙련 된 사용자 및 단지.

    .Step 5. 이제 포스트 그레스의 사용자로 로그인하지 않고 새 데이터베이스를 만들 수 있어야합니다. 입력을 시도해보십시오

    CREATEDB의 mydb_as_user

    희망이 당신을 위해 작동합니다.

    .Step 6. 좋아, 당신은 당신의 레일 'DB /'디렉토리에 development.sqlite3 파일을 가지고 있도록. 처음에 나는 psql의에 sqlite3를에서이 변환으로 다음 테스트를 설정하려고 했어요. (대신 이후 7 단계에서 솔루션을 참조) 그래도 난 일이 가져올 수 없습니다하지만 난 Heroku.com에 레일 응용 프로그램에서 데이터를 가지고 필요한 사용 여기에 솔루션으로 내 시도를 떠났다. 그들은 이런 식으로 뭔가를 탐구해야 할 수도 있으므로에만 로컬 응용 프로그램 및 Heroku가 없음 데이터를 가지고 사람들을 위해, 그들은 동일한 방법을 사용할 수 없습니다 :

    x6.1 첫째, 같은 명령 줄에서 명령을 시도하여 테스트 'psql의'

    psql의 mydb_as_user

    (당신이 당신의 비밀번호를 입력 한 후)이 다음과 같은 것을 표시해야합니다 :

    C:>psql mydb_as_user
    Password:
    psql (9.0.4)
    WARNING: Console code page (850) differs from Windows code page (1252)
             8-bit characters might not work correctly. See psql reference
             page "Notes for Windows users" for details.
    Type "help" for help.
    
    mydb5=# 
    

    x6.2 입력 해보십시오 :

    표 users_table (ID 정수, "이름"텍스트)을 생성;

    이 표시되어야합니다 :

    CREATE TABLE
    mydb5=#
    

    당신이 pgAdmin III에서 확인하면 아래가 표를 참조한다 :

    개체 브라우저> 서버 그룹> 서버> PostgreSQL의 9.0 (로컬 호스트 : 5432)> 데이터베이스> mydb_as_user> 스키마> 공공> 테이블> users_table>

    x6.3 좋아, 다음 변환을 시도합니다. 다운로드 SQLite는 쉘은 윈도우 바이너리 미리 컴파일. ': \ 온도를 C'과의 sqlite3.exe하고 development.sqlite3 파일을 넣어 x6.4 내가 사용, 새로운 디렉토리를 생성합니다. X6.5를 사용하여 다음 명령 (여기에서있는) 포스트 그레스에 development.sqlite3 데이터베이스를 덤프합니다.

    sqlite3를 개발 .dump | psql의 development2

    오류 등을 얻을 수 있습니다 :

    psql의 : FATAL : 데이터베이스 "development2"존재하지 않는

    내가 pgAdmin III에 가서 개발이 데이터베이스를 만들어, 명령을 다시 시도하고 있어요 그래서 x6.6 :

    ERROR:  syntax error at or near "PRAGMA"
    LINE 1: PRAGMA foreign_keys=OFF;
            ^
    BEGIN
    COMMIT
    

    내가 말했듯이, 나는 그것을 작동시킬 수 없습니다. 나는 확실히 거기에 오류가 있지만 다른 방법을 생각했다 라운드를 얻기의 방법과 내가 대신 (I를 데이터를 갖도록에게 Heroku 계정이 필요하고 드린다 보석을 사용하여 psql의에 sqlite3를에서 변환을 수행이 솔루션을 (사용하므로 해요 믿다):

    pgAdmin III I의 .Step 7. 다른 데이터베이스를 만들었습니다. '개발', 소유자 : 'AJames'(자신의 Windows 사용자 이름이 대체) 속성 탭 I 세트의 이름으로. 그리고 권한 탭 설정 역할에서 '공공'과 모든 옵션을 확인 (나는 확실히 필요하다는 아니에요 있도록 선택하지 않은이 재설정을 생각했다).

    8. 추가 .Step 보석 '페이지', '0.11.0' 당신의 보석 파일. 당신은 아마도를 제거 할 수 있습니다 : 보석 'sqlite3를' 이 시점에서 너무.

    여기에 제안 .Step 9. database.yml을 :

    development:
      adapter: postgresql
      database: db/development
      username: AJames # replace this with your own user name
      password: secret # replace this with your own password
      host: localhost
      encoding: UTF8
      pool: 5
      timeout: 5000
    

    당신이 오픈 소스 프로젝트에 참여하고 할 경우하지, 암호가 공개 될하려는 레일 응용 프로그램에서 데이터베이스 암호를 제공 안전하게에 대한 답변 중 일부를 한 번 봐.

    당신의 레일 응용 프로그램의 루트 디렉토리의 실행에서 명령 줄에서 .Step 10 : 레이크 DB : 마이그레이션 이 새로운 스키마와 포스트 그레스 데이터베이스의 모든 테이블을 생성합니다.

    .Step 11. 실행 Heroku가 DB를 (다시 레일 응용 프로그램의 루트 디렉토리에의) 명령 줄에서 끌어 내려하고 새 빈 포스트 그레스 데이터베이스로 모든 데이터를 당깁니다. 나는 당신의 탭 보석이 당신을 위해이 일을하는 것이 시점에서 생각합니다.

    .Step 12. 희망은 더 12 단계가 없습니다! ... 그리고 지금 당신을 위해 일해야한다. 해피 RoR에 PostgreSQL을 디버깅! 편집 또는이에 오류가있는 경우 나, 알려 주시기 바랍니다.

    또한, 여기에 추가로 흥미로운 일이 될 수도 것들 / 유용한 목록입니다 :

  2. ==============================

    2.공식 PostgreSQL의 문서 - 당신의 연결 중 어느 것도 (틀림없이) 가장 유용한 문서로 나타나지 않았다. 후자는 리눅스에 특정하지만 나는 최근에, PostgreSQL의와 그 문서 및 이들의 조합을 사용하여 장고 리눅스 민트 상자를 구성합니다.

    공식 PostgreSQL의 문서 - 당신의 연결 중 어느 것도 (틀림없이) 가장 유용한 문서로 나타나지 않았다. 후자는 리눅스에 특정하지만 나는 최근에, PostgreSQL의와 그 문서 및 이들의 조합을 사용하여 장고 리눅스 민트 상자를 구성합니다.

    나는 레일에 대해 덜 사물의 PostgreSQL의 측면을 검증 대해 더 걱정 것입니다. 말 즉, 귀하의 질문에 "나는 설정하는 방법과 윈도우 7 상자에 PostgreSQL 서버를 테스트"해야 당신이 레일에 고정 얻는 방법을 알 필요가있는 moreso보다.

    편집하다: 자세한 설치 안내서와 공식 PostgreSQL의 위키 - 어쩌면 이것은 또한 당신에게 유용 할 수 있습니다.

    행운을 빕니다!

  3. ==============================

    3.AJP의 대답은 단지 작은 재 설정과 올바른 하나입니다. 라인

    AJP의 대답은 단지 작은 재 설정과 올바른 하나입니다. 라인

        database: db/development 
    

    나를 위해 작동하지 않습니다. 나는 그것을 변경해야

        database: development
    

    나는 명령 레일에 루비를 위해 이것을 사용

        rake db:create 
    

        rake db:migrate
    

    일하다

  4. from https://stackoverflow.com/questions/7086654/installing-postgres-on-windows-for-use-with-ruby-on-rails by cc-by-sa and MIT license