I'd like to replace waterline with mongoose in my sails.js application. I'm looking for the correct way to do this, but I don't see how in the documentation. Can anyone explain how to do this?
You could do this via config overrides, to be defined via .sailsrc
in your project root. Basically you have to prevent the entire Waterline initialization, currently tagged as orm
hook. In .sailsrc:
{
"hooks": {
"orm": false,
"pubsub": false
}
}
You'll have to disable the pubsub
hook as well - it depends on the orm
hook. Relevant lines in the source: v0.10, v0.9.8.
This will switch off the orm
hook for the following start commands:
Concerning the stability of this in future versions of Sails you should be aware of the fact that the hook system currently is tagged as unstable and disabling hooks is advised against:
// Allow disabling of hooks by setting them to "false"
// Mostly useful for testing, and may cause instability in production!
Additional information can be found here:
Note: This is baked into Sails by default since the discussed PR was merged for bleeding edge git checkouts.
For Sails 0.10.x
To make .sailsrc apply to app.js you could replace line 37 in app.js with this:
// app.js, following line 36
var fs = require('fs');
var sailsRc = __dirname + '/.sailsrc';
var config = {};
fs.exists(sailsRc, function(exists){
if (!exists) return sails.lift();
fs.readFile(sailsRc, 'utf8', function(err, data){
if (err) {
console.warn('Error while reading .sailsrc:' + err);
}
try {
config = JSON.parse(data);
} catch(e) {
console.warn('Error while parsing .sailsrc:' + err);
}
sails.lift(config);
});
});
For Sails 0.9.x
Replace app.js with this:
// Start sails and pass it command line arguments
var fs = require('fs'),
optimist = require('optimist'),
sails = require('sails');
var sailsRc = __dirname + '/.sailsrc';
var config = optimist.argv;
fs.exists(sailsRc, function(exists){
if (!exists) return sails.lift(config);
fs.readFile(sailsRc, 'utf8', function(err, data){
if (err) {
console.warn('Error while reading .sailsrc:' + err);
}
try {
config = sails.util.merge(config, JSON.parse(data));
} catch(e) {
console.warn('Error while parsing .sailsrc:' + err);
}
sails.lift(config);
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With