2012-05-12 2 views
2

postgres에서 기존 테이블 덤프를 기반으로하는 후속 작업에서 마이그레이션을 만드는 가장 좋은 방법은 궁금합니다. 나는 테이블/함수/시퀀스를 제거하기 위해 down 메소드를 직접 작성해야한다는 것을 알고 있지만, 기존 SQL 스크립트를로드하고 스크립트의 모든 것을 실행하는 마이그레이션을 후속편에 알리는 방법이 있습니까?기존 postgres 테이블 덤프에서 Sequel 마이그레이션을 어떻게 만듭니 까?

편집 : 그냥 경우의 불분명,이

답변

6

: 그렇다면, 대답은 --file 옵션을 사용하는 것입니다. 실제로이 내장 된 지원이의 속편 명령 줄 프로그램 :

속편 포스트 그레스 -d : // 포스트 그레스를 @ localhost를/MYDB> 001_initial_migration.rb 기능이나 시퀀스를 덤핑에 대한 지원이 같이 없다

데이터베이스 독립적 마이그레이션을 수행하도록 설계되었습니다.

함수 및 사용자 지정 시퀀스를 사용하는 경우에는 데이터베이스 별 영역에 완전히 포함되므로 데이터베이스 도구를 사용하는 것이 더 나을 수 있습니다.

+0

(공간 지원을 위해) 사용해야하는 기능 및 시퀀스에 대한 정보를 제공해 주셔서 감사합니다. 이 경우 설정을위한 DB 도구를 사용하겠습니다. – kelso

-1

가 어떻게 PostgreSQL의 명령 줄 클라이언트와 SQL 스크립트를 실행하기 위해 묻는 루비 속편 SQL 라이브러리/보석을 사용? 당신은 테이블 덤프에서 마이그레이션을 만들 것입니다,하지만 당신은 쉽게 속편의 schema_dumper 확장명을 사용하여 만들 수 있습니다

psql -U postgres -d mydb -f dump.sql. 
+0

아니요, 죄송합니다. 더 명확하지는 않았지만, 루비 후속 보석, 일종의 돛을 사용하고 있습니다. – kelso

+1

아, 나는 그것에 익숙하지 않다. 그러나 SQL에서 직접 물건을 처리하는 일종의 방법이 있다면, 아마도 파일의 내용을 그런 메소드 호출로 보낼 수있다. 나는 당신이'psql'뿐만 아니라 PostgreSQL 덤프 파일을 읽을 수있는 클라이언트를 얻게 될지 의심 스럽다. 아마도'psql'에 대한'system' 호출을 직접 할 수 있을까요? – theory

+0

사용할 수있는 sql 문자열을 전달하는 메서드가 있지만 파일을 구문 분석해야합니다 (나는 생각합니다). psql에 대한 호출을하기위한 아이디어는 라이브러리가 아무 것도 없다면 내장 된 라이브러리가 없다면 꽤 좋은 옵션 인 것 같다. – kelso

-1
DB.extension :schema_dumper 

query = Vydia::DB.dump_schema_migration({:indexes => true, :foreign_keys => true, :index_names => true}) 

속편은 루비 마이그레이션 파일로 DB 구조를 덤프로 또한 당신이 덤프 될 원하는 것을 지정할 수 있다는 사용할 수있는 확장 schema_dumper 있습니다.

+0

[좋은 답변 작성 방법] (https://stackoverflow.com/help/how-to-answer)을 검토하십시오. 코드 전용 답변은 문제 해결 방법을 설명하지 않기 때문에 권장하지 않습니다. 당신은 당신의 대답을 업데이트해야합니다. * 이것이 무엇을하는지, 그리고 받아 들여지고 답이 올라간 답을 어떻게 개선하는지 설명하십시오. – FluffyKitten

관련 문제