2013-07-10 13 views
7

jemand verwendet Knoten Sails Framework mit mysql als DB (https://github.com/balderdashy/sails-mysql)?sails-mysql Schema-Datentypen

Ich bin in Modellen fest, ich kann die Datenbankstruktur nicht erstellen. Die Datentypen, die ich zum Erstellen des Schemas verwenden muss, funktionieren nicht. Ich habe überall nach einer Dokumentation gesucht, aber ich kann nichts finden, was mir helfen könnte.

Sails Dokumentation ist noch nicht abgeschlossen, denke ich. http://sailsjs.org/#documentation/models

Kann mir bitte jemand helfen bei der Erstellung von Modellen. Ich würde hoch schätzen, wenn Sie mir helfen können, das einfache Schema unten zu verursachen, das sails-mysql verwendet. Danke im Voraus!

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' 
    } 
}; 

Antwort

27

Ich bin der Autor von der Wasserlinie, sorry Sie nicht, was Sie in der Dokumentation erforderlich finden können, sind wir ständig arbeiten, um sie auf dem Hinzufügen und sie auf dem neuesten Stand zu halten.

Sie sind sehr nah an Ihrem Schema. Waterline unterstützt derzeit keine Datenbankebene ENUM, aber wir haben Validierungen, mit denen Sie das gleiche Endergebnis erzielen können.

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

Ich habe festgestellt, dass das Datenbankschema geändert wird, wenn Sie das Schema in Segeln ändern, ist das wahr? Sichern Sie Ihre Datenbank, bevor Sie eine Verbindung mit der vorhandenen Datenbank herstellen. – windmaomao

+0

Gibt es ein Update zu dieser Antwort, oder gibt es immer noch nicht db native ENUM? – hamncheez