2015-06-11 31 views
8

Waterline mükemmel bir ORM'dir ancak su hattında henüz bulunmayan birçok özellik olduğunu fark ettim ancak Sequelize zaten var. Bu yüzden devam etmek için değiştirmeye karar verdim ama yine de diğerleri için Sails'i kullanmaya karar verdim. Ders çalışmasına nasıl devam edeceğimi, ancak hiçbir şeyin nasıl değiştirileceğini öğreniyorum. Yelken Js'de devam etmek için Waterline'ı nasıl değiştirebilirim?SailsJs'de Sequelize nasıl kullanılır

+0

Bu gönderiyi kontrol edin https://groups.google.com/d/msg/sailsjs/ALMxbKfnCIo/H2RcRUnnFGEJ Manuel Darveau tarafından. –

cevap

11

Ayrıca devam etmek için ileriye doğru ilerledim, son zamanlarda ortaya çıkan iki proje var, bu yüzden onları duyurmak istiyorum.

O Manuel Darveau tarafından cevap şu

sails-hook-sequelize:

, bu migrate: 'drop'

ile aynı şekilde sequelize senkronizasyonu zorlayabilir, sequelize aracılığıyla tüm modelleri, ithalat alıp global değişkenler olarak modellerini vermektedir edecek

sails-hook-sequelize-blueprints

Yelkenler planları bana zaman bir LOT kurtardı, bu yüzden sequelize çalışmak için bir çatal yazdım, bu özgün tasarımları ile aynı şekilde çalışır ve hala aynı planları yapılandırmaları gibi olacak rest, shortcuts, prefix ve benzerleri, su hattı populateEach() işlevi olan modelleri doldurduğundan, sonuç aynı olduğu için include: [{ all: true }] kullanır.

Tam örnek:

$ 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 
} 

connections.js

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

Modeliniz tanımı

// user.js 
module.exports = { 
    attributes: { 
    name: { 
     type: Sequelize.STRING, 
     allowNull: false 
    }, 
    age: { 
     type: Sequelize.INTEGER 
    } 
    }, 
    associations: function() { 
    user.hasMany(image, { 
     foreignKey: { 
     name: 'owner', 
     allowNull: false 
     } 
    }); 
    }, 
    options: { 
    tableName: 'user', 
    classMethods: {}, 
    instanceMethods: {}, 
    hooks: {} 
    } 
}; 

İşte bu kadar.

+1

Bu, geçişleri de devam ettiriyor mu? – nahtnam

+0

Sequelize geçişleri aslında CLI ile çalışır, böylece herhangi bir yerde geçiş yapabilirsiniz, sadece veritabanı bağlantılarını içeren bir config/config.json dosyasına ihtiyacınız var, taşıma dosyasını oluşturun, bazı sütunları ekleyin ve bitti. – FXCesinha

+0

@FXCesinha, birden çok bağlantı kullanmak istediğimde ne yaparım? http://stackoverflow.com/questions/36565379/use-multiple-datastore-connections-with-sequelize?noredirect=1#comment60735265_36565379 – Milkncookiez