2010-04-13 4 views
1

후속편에서의 마이그레이션에 약간의 문제가 있으며 다른 눈을 사용할 수 있습니다. 괜찮은 것처럼 보이지만 테이블이 작성되지 않은 마이그레이션을 실행 중입니다. schema_info 테이블이 생성 된 것을 볼 수 있기 때문에 확실히 연결됩니다. -M 0/1은 예상대로 버전을 변경하지만 여전히 테이블을 변경하지 않습니다. 후속 조치가 실행되지 않습니까?

명령 :

sequel -m . -M 1 ~/Desktop/dbtest/testdb.yml 

001_testdb.rb :

class TestDb < Sequel::Migration 
    def up 
    create_table("terminals") do 
     primary_key :id 
     Integer :location_id 
     Integer :merchant_id 
     BigDecimal :terminal_id, :size=>[11, 0] 
     String :reference, :size=>255 
     DateTime :created_at 
     DateTime :updated_at 
     String :image, :default=>"default.jpg", :size=>255 
    end 
end 
    def down 
    drop_table :terminals 
    end 
end 

포스트 그레스의 Output :

test_db=# \dt 
     List of relations 
Schema | Name  | Type | Owner 
--------+-------------+-------+---------- 
public | schema_info | table | postgres 
(1 row) 

test_db=# select * from schema_info; 
version 
--------- 
    1 
(1 row) 
+0

당신은 downcased 식별자를 사용해야합니까? – mikezter

+0

Sequel 자체의 테이블 덤프를 사용하여 생성 된 것으로 나타납니다. 그래서 구문은 괜찮을 것입니다. 또한이 주제에있는 것처럼 보이는 두 개의 자습서와 동의합니다 ... 감사합니다. 그러나 나는 그것이라고 생각하지 않습니다. 나는 그것이 명명과 무언가일지도 모른다라고 생각한다. 그러나 나는 무엇을 모르고있다. 이것에 대한 문서를 찾을 수 없습니다. Grrr. – mikewilliamson

답변

3

실행

sequel -m . -E > ~/Desktop/dbtest/testdb.yml 
,

-E는 로거를 추가하여 실제 발생 상황을 볼 수 있으며,>는 testdb.yml 로그 파일로 출력을 리디렉션합니다. 이것이 첫 번째 이주 인 경우, 데이터베이스를 제거하고 다시 작성 (또는 적어도 schema_info 테이블)해야 할 것입니다. 그리고 분명히 -m에 대한 마이그레이션으로 디렉토리에 있어야합니다. 일하다.

또한 마이그레이션 클래스에 대한 다음과 같은 구문을 추천 할 것입니다 : 익명 클래스 대신라는 이름의 클래스를 사용

Class.new(Sequel::Migration) do 
    def up 
    create_table(:terminals) do 
     primary_key :id 
     Integer :location_id 
     Integer :merchant_id 
     BigDecimal :terminal_id, :size=>[11, 0] 
     String :reference, :size=>255 
     DateTime :created_at 
     DateTime :updated_at 
     String :image, :default=>"default.jpg", :size=>255 
    end 
    end 
    def down 
    drop_table :terminals 
    end 
end 

네임 스페이스 충돌의 위험을 줄일 수 있습니다.

+1

요즘 더 나은 익명 마이그레이션은'Sequel.migration do ... end'을 통해 이루어집니다. 자세한 내용은 [마이그레이션 문서] (http://sequel.rubyforge.org/rdoc/files/doc/migration_rdoc.html)를 참조하십시오. – Phrogz

관련 문제