2013-07-10 2 views
7

누구든지 DB (https://github.com/balderdashy/sails-mysql)로 mysql을 사용하는 노드의 돛 프레임 워크를 사용합니까?sails-mysql 스키마 데이터 유형

모델에 고정되어있어 데이터베이스 구조를 만들 수 없습니다. 스키마를 만드는 데 사용해야하는 데이터 유형이 작동하지 않습니다. 나는 문서를 찾기 위해 어디에서나 검색했지만, 나는 나를 도울 수있는 것을 찾을 수 없다.

세일 문서가 아직 완성되지 않았습니다. http://sailsjs.org/#documentation/models

아무도 모델을 만들 수 없습니까? sails-mysql을 사용하여 간단한 스키마를 만들도록 도와 주시면 매우 감사하겠습니다. 미리 감사드립니다!

module.exports = { 

    attributes: { 
     id: 'FLOAT', 
     social_network: { 
       type: 'ENUM', 
        defaultsTo : {'Facebook', 'twitter', 'vk','weibo'} 

       }, 
     country: 'STRING', 
     message: 'TEXT', 
     link: 'STRING', 
     comments: 'TEXT', 
     userid: 'INT', 
     username: 'STRING', 
     image_link: 'STRING', 
     longitude: 'FLOAT', 
     latitude: 'FLOAT', 
     location_name: 'STRING', 
     updated_at: 'TIMESTAMP', 
     created_at: 'TIMESTAMP' 
    } 
}; 

답변

27

내가 워터의 저자, ​​미안 해요 당신이 문서에서 필요한 것을 찾을 수 없습니다, 우리는 지속적으로 그들에게 추가 및 날짜로 유지에 노력하고 있습니다.

스키마가 매우 가까이 있습니다. 현재 Waterline은 데이터베이스 레벨 ENUM 유형을 지원하지 않지만 동일한 최종 결과로 끝날 수있는 유효성 검사가 있습니다.

module.exports = { 

    // Disables Automatic ID generation 
    // (allows you to use a FLOAT type for your ID) 
    autoPK: false, 

    // Disables Automatic Timestamps 
    // You will need to manually update your timestamps, usually best to leave this 
    // on and remove the updated_at and created_at attributes below to let Waterline 
    // keep these up to date for you 
    autoCreatedAt: false, 
    autoUpdatedAt: false, 

    attributes: { 
    id: { 
     type: 'FLOAT', 
     primaryKey: true 
    } 

    // Proper ENUM types at the Database level are not yet supported 
    // but you can use validations to achieve the same end result. 
    // You can also add a default social_network with defaultsTo 
    social_network: { 
     type: 'STRING', 
     in: ['facebook', 'twitter', 'vk', 'weibo'] 
    }, 
    country: 'STRING', 
    message: 'TEXT', 
    link: 'STRING', 
    comments: 'TEXT', 
    userid: 'INTEGER', 
    username: 'STRING', 
    image_link: 'STRING', 
    longitude: 'FLOAT', 
    latitude: 'FLOAT', 
    location_name: 'STRING', 

    // Timestamp is not supported but Time, Date, and DateTime are 
    updated_at: 'DATETIME', 
    created_at: 'DATETIME' 
    } 
}; 
+0

돛에서 스키마를 변경하면 데이터베이스 스키마가 변경된다는 것을 알았습니까? 기존 데이터베이스에 연결하기 전에 데이터베이스를 백업하십시오. – windmaomao

+0

이 답변에 대한 업데이트가 있습니까? 아니면 여전히 db native ENUM이 있습니까? – hamncheez