View our GitHub

Please visit sails-docs on GitHub to view documentation on your mobile device.

Edit Page

sails.config.connections

What is this?

Adapters are the middle man between your Sails app and some kind of storage (typically a database)

Global connections are configured in the connections.js file located in your project's config directory. You can also specify connections in your config/local.js or environment-specific config files.

Sails adapters have been written for a variety of popular databases such as MySQL, Postgres and Mongo. You can find a list of supported adapters here.

Example

To use the sails-memory adapter (useful for DEVELOPMENT ONLY), first install the module with npm install sails-memory, then define it in connections.js:

Here is an example adapter configuration file

myApp/config/connections.js

module.exports.connections = {
  // sails-disk is installed by default.
  localDiskDb: {
    adapter: 'sails-disk'
  },
  memory: {
    adapter: 'sails-memory'
  }
};

If you wanted to set memory as the default adapter for your models, you would do this. myApp/config/models.js

module.exports.models = {

  connection: 'memory'
};

Keep in mind that options you define directly in your model definitions will override these settings. Prior to v0.10, adapters were defined in myApp/config/Adapters.js. See v0.9 docs for more info.

Multiple connections for an adapter

You can set up more than one connection using the same adapter. For example, if you had two mysql databases, you could configure them as:

module.exports.connections = {
  localMysql: {
    adapter: 'sails-mysql',
    user: 'root',
    host: 'localhost',
    database: 'someDbase'
  },
  remoteMysql: {
    adapter: 'sails-mysql',
    user: 'remoteUser',
    password: 'remotePassword',
    host: 'http://remote-mysql-host.com',
    database: 'remoteDbase'
  }
};

Note If any connection to an adapter is used by a model, then all connections to that adapter will be loaded on sails.lift, whether or not models are actually using them. In the example above, if a model was configured to use the localMysql connection, then both localMysql and remoteMysql would attempt to connect at run time. It is therefore good practice to split your connection configurations up by environment and save them to the appropriate environment-specific config files, or else comment out any connections that you don't want active.

Is something missing?

If you notice something we've missed or could be improved on, please follow this link and submit a pull request to the sails-docs repo. Once we merge it, the changes will be reflected on the website the next time it is deployed.

Reference

We wrote a book!

Get early access to the book
with promotion code: mcneildoc

Get the Book