2014-01-18 2 views
6

나는 Node.js를 배우고 및 항해 선택의 내 프레임 워크입니다. 나는 MySQL의 DB를 가진 프로젝트에서 사용하고 싶은 나는 Sequelize ORM은보다 완벽한라고 생각합니다. 워터 라인 대신 돛에서 Orm Sequelize를 어떻게 사용할 수 있습니까?항해의 JS와 Sequelize

덕분에

답변

2

나는 돛이 sequelize 태어났다 당신이 할 수있는 생각합니다.

당신은 Mike McNeil's answer here을 읽을 수 그가 sequelize 지원을 다시 소개합니다 직접하는 경우 아마도 마이크를 물어

내가 청사진을 포함 sequelize에 대한 모든 지원을 재 도입하기 위해 노력했다 한 것을 최근에 와서 두 개의 프로젝트가 있습니다
1
$ npm install sails-hook-sequelize 
$ npm install sails-hook-sequelize-blueprints 
$ npm install sequelize 
$ npm install pg pg-hstore 
$ npm install continuation-local-storage 

.sailsrc

"hooks": { 
    "blueprints": false, 
    "orm": false, 
    "pubsub": false 
} 

모델 폴더에서 0
somePostgresqlServer: { 
    user: 'postgres', 
    password: '', 
    database: 'database', 
    options: { 
     host : 'localhost', 
     port : 5432, 
     logging: true 
    } 
} 

// userstable 보자 예를 들어 ->이

module.exports = { 
    attributes: { 
    firstname: { 
     type: Sequelize.STRING, 
     allowNull: false 
    }, 
    secondname: { 
     type: Sequelize.STRING, 
     allowNull: false 
    }, 
    } 

    } 
}; 

을 users.js 또는 연결을위한 또 다른 방법은 별도의 파일이 db.js 만들

module.exports = { 
dbPath: function() { 
    return ("postgres://postgres:(user)@localhost:5432/(databasename)"); 
} 
} 
0

우선

npm install sails-hook-sequelize --save 
: 당신은 pakage 돛 훅 - sequelize을 intsall해야한다

"hooks": { 
    "orm": false, 
    "pubsub": false 
} 

파일이

module.exports.models = { 
    schema: true, 
    connection: 'mysql', 
    migrate: 'safe' 
}; 

파일을 ./config/models.js .sailsrc

초 편집 파일

module.exports.connections = { 
    mysql: { 
     adapter: 'sails-mysql', 
     port: 3306, 
     user: 'root', 
     password: '123456', 
     database: 'TestDataBase', 
     charset: 'utf8', 
     collation: 'utf8-general_ci', 
     options: { 
      host: 'localhost' 
     } 
    } 
}; 

이 ./api에서 모델을 정의 ./config/connections.js /models/UserAccount.js

module.exports = { 
    attributes: { 
     ID: { 
      type: Sequelize.BIGINT(20), 
      autoIncrement: true, 
      allowNull: false, 
      primaryKey: true 
     }, 
     UID: { 
      type: Sequelize.STRING(255), 
      allowNull: false, 
      defaultValue: Sequelize.UUIDV4, 
     }, 
     UserName: { 
      type: Sequelize.STRING(50), 
      allowNull: true 
     } 
    }, 
    associations: function() {}, 
    options: { 
     tableName: 'UserAccount', 
     createdAt: 'CreatedDate', 
     updatedAt: 'ModifiedDate', 
     hooks: {} 
} 
}; 

최종 사용 모델 :

UserAccount.findAll({}).then(function(success){}, function(err){ 
}) 

행운을 빕니다 ^^.

+0

우리의 프로젝트는 년 전에 시작되었다, 그러나 지금 우리는 sequelize에 이동해야합니다. 리팩토링을 수행하기 전에 둘 다 병렬로 사용할 수 있습니까? – Crusader