2011-10-09 3 views
0

방금 ​​sqlite3에서 PG로 변경했으며 pgAdmin을 통해 데이터베이스를 만들고 마이그레이션을 실행 한 후 이해할 수없는 다음을 실행합니다.PostgreSQL에서 DB 마이그레이션을 실행할 수 없습니다.

Pawel:bodb pawel$ rake db:create 
DEPRECATION WARNING: Rake tasks in /Users/pawel/Ruby/apps/bodb/vendor/plugins/google_charts_on_rails/tasks/google_charts_on_rails_tasks.rake are deprecated. Use lib/tasks instead. (called from /Users/pawel/Ruby/apps/bodb/Rakefile:7) 

firstdb already exists 
Pawel:bodb pawel$ rake db:migrate 
DEPRECATION WARNING: Rake tasks in /Users/pawel/Ruby/apps/bodb/vendor/plugins/google_charts_on_rails/tasks/google_charts_on_rails_tasks.rake are deprecated. Use lib/tasks instead. (called from /Users/pawel/Ruby/apps/bodb/Rakefile:7) 
== AddLikesToUsers: migrating ================================================ 
-- add_column(:Users, :likes, :string) 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

PGError: ERROR: relation "Users" does not exist 
: ALTER TABLE "Users" ADD COLUMN "likes" character varying(255) 

Tasks: TOP => db:migrate 
(See full trace by running task with --trace) 

답변

3

나는 경고에 대해 잘 모르겠지만, 오류 메시지가 말한다 : 테이블의 이름이 users입니다 아마

relation "Users" does not exist

당신은, "사용자"대문자를 사용하고 있습니까? Identifiers in PostgreSQL은 큰 따옴표로 묶지 않는 한 대소 문자를 구분하지 않습니다.

+0

레일즈가 모든 테이블을 생성하고 있으며 schema.rb는이를 소문자로 보여줍니다. – Simpleton

+0

@Simpleton : 만약 그들이 ** 소문자라면 **이 문제는 ** 문제입니다. 쿼리는'ALTER users' 또는'ALTER Users'가 아니라'ALTER "Users"'를 읽습니다. –

+0

@Simpleton :'add_column (: Users, : likes, : string)'이 맞지 않아서'add_column (: users, : likes, : string)'이어야합니다. 그래서 Erwin은 올바른 경로에 있습니다. –

1

이 마이그레이션은 사용자 테이블이 이미 완전히 새로운 PostgreSQL 데이터베이스의 경우와하지 않은 있다고 가정 것처럼 ...

데이터베이스에 일부 시작 스키마를 추가하는 것을 잊지나요?

+0

아마, 정렬의 아무것도 가이드에서 올랐다. – Simpleton

+0

아, 나는 당신이 마이그레이션 결과에서 뭔가를 가져 갔다는 다른 대답을 읽을 수 있습니다. AddLikesToUsers가 처음으로 실행 한 마이 그 레이션이었습니다 :-) – HakonB

+0

작은 것들. 그래도 고마워. – Simpleton

관련 문제