Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sails-mysql schema datatypes

anyone used node's sails framework using mysql as DB (https://github.com/balderdashy/sails-mysql)?

I am stuck in models, I can't create the database structure.The datatypes that I need to use to create the schema doesn't work. I've searched everywhere for some documentation, but i can't find anything that can help me.

Sail's documentation is not yet complete, i guess. http://sailsjs.org/#documentation/models

Can anyone please help me in creating models. I would highly appreciate if you can help me create the simple schema below using sails-mysql. Thanks in advance!

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'
    }
};
like image 863
Wreeecks Avatar asked Jul 10 '13 07:07

Wreeecks


1 Answers

I am the author of Waterline, sorry you couldn't find what you needed in the docs, we are constantly working on adding to them and keeping them up to date.

You are very close on your schema. Waterline currently doesn't support a database level ENUM type but we have validations that will allow you to end up with the same end result.

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'
  }
};
like image 93
particlebanana Avatar answered Sep 24 '22 19:09

particlebanana