2014-01-18 14 views
6

Ich lerne Node.js und Sails ist mein Framework der Wahl. Ich möchte es in einem Projekt mit MySql db verwenden und ich denke, dass Sequelize Orm vollständiger ist. Wie kann ich Sequelize Orm in Sails anstelle von Waterline verwenden?Sails js und Sequelize

Dank

Antwort

2

Ich denke, man kann als Segel mit sequelize geboren wurde.

Sie können Mike McNeil's answer here und vielleicht fragen Mike direkt lesen, wenn er sequelize Unterstützung

2

Es gibt zwei Projekt, das vor kurzem kommen wieder einführen wird, dass ich volle Unterstützung sequelize wieder einzuführen, haben gearbeitet habe, Pläne einschließlich.

Segel-hook-sequelize

Segel-hook-sequelize-Blaupausen

See my answer

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 
} 

In connections.js

somePostgresqlServer: { 
    user: 'postgres', 
    password: '', 
    database: 'database', 
    options: { 
     host : 'localhost', 
     port : 5432, 
     logging: true 
    } 
} 

In Modellordner

// zum Beispiel lassen userstable nehmen -> users.js

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

    } 
}; 

oder ein anderes Verfahren zur Verbindung erstellen separate Datei db.js

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

Erste Sie müssen unbedingt page-sail-hook-sequelize:

npm install sails-hook-sequelize --save 

Sekunden bearbeiten Datei .sailsrc

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

Datei

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

Datei ./config/models.js ./config/connections.js

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

Modelle in ./api definieren /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: {} 
} 
}; 

Finale, Verwendung Modell:

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

Viel Glück ^^.

+0

Unser Projekt wurde vor einem Jahr gestartet, aber jetzt müssen wir weitermachen Sequelize. Kann ich beide vor dem Refactoring parallel verwenden? – Crusader