2014-03-25 3 views
2

node.js 애플리케이션에서 마이그레이션에 적합한 모듈을 찾고 있습니다. ORM으로 후편을 사용하고 있습니다. 내가 후편에 마이 그 레이션과 같은 몇 가지 솔루션을 발견했지만 컬럼 추가 (스키마 변경) 또는 엔트리를 테이블에 추가하기위한 예제를 충분히 찾을 수 없습니다.nodejs 데이터베이스 마이그레이션 모듈

누군가 기존의 엔터티를 추가하는 것뿐만 아니라 스키마를 변경하는 데에도 좋은 예제를 제공 할 수 있습니까?

내 응용 프로그램이 heroku에서 호스팅되었으므로 heroku에서 사용하는 방법을 강조 할 수 있습니까?

감사

답변

4

응용 프로그램에서 sequelize를 사용하는 경우 당신은 당신의 마이그레이션에 대한 sequelize를 사용해야 할 수 있습니다. 라이브러리에는 마이그레이션 처리에 대한 훌륭한 문서가 있습니다.

sequelize와 함께 열을 추가하는 측면에서 먼저 명령 행을 통해 마이그레이션을 작성하십시오. 실행 sequelize -c migration-name. 예를 들면 다음과 같습니다. sequelize -c add_location_to_users.

이 명령을 실행하면 루트 디렉토리의 마이그레이션 폴더에서 마이그레이션 파일을 찾을 수 있습니다. 여기서 데이터베이스에서 마이그레이션을 변경해야하는 부분을 설명합니다. 예제를 유지하려면 샘플 메소드가 있습니다.

migration.addColumn(
    'Users', 
    'Location', 
    DataTypes.STRING 
) 

이 마이그레이션을 실행하면 데이터 유형 문자열 인 '위치'열이 '사용자'테이블에 추가됩니다.

이 링크가 테이블에 항목을 추가하는 측면에서 등

, 열을 변경 열 이름을 변경, 테이블의 이름을 변경 포함하면 sequelize 사용할 수있는 다른 기능에 당신을 데려 갈 것이다 http://sequelizejs.com/docs/latest/migrations#functions, sequelize 준다 모델에서 create 또는 findOrCreate를 실행할 수 있습니다. 다음은 user 테이블의 예제입니다. 나는 위의 새로운 사용자 위치를 인쇄

User.create({ name: 'foo', email: 'bar', location: 'New York' }).success(function(user) { 
    console.log(user.location); //this prints the users location 
}) 

그런 다음 성공 콜백에서 사용자에게 액세스 권한 (데이터베이스에서 생성 된 항목)가(),. 문서의 인스턴스 섹션은 클래스의 인스턴스 (또는 '데이터베이스의 항목')를 다루는 다른 방법을 찾을 수있는 곳입니다.

+0

자세한 답변을 주셔서 대단히 감사합니다. – user2019726

0

완전한 프레임 워크를 원한다면 Node on Fire는 정말 멋진 마이그레이션 모듈을 포함하고 있습니다. https://github.com/martijndeh/fire을보십시오.

에는 일부 모델 및 마이그레이션이 포함되어 있습니다. 모델을 변경하고 fire build을 실행하면 새로운 마이그레이션이 생성됩니다. fire release은 데이터베이스에 마이그레이션을 적용합니다.

노드 온 파이어 (Node on Fire)의 디자인은 Node on Fire로 작성된 앱을 Heroku에서 배포하기에 완벽한 후보로 만드는 12factor 방법론을 준수합니다.

P. 나는 Node on Fire의 주된 기고자이기 때문에이 대답은 편향 될 수있다.