将sails.js与现有的postgres数据库一起使用

时间:2013-06-14 18:35:24

标签: node.js postgresql sails.js waterline sails-postgresql

我正在考虑将Sails用于我们正在开发的应用。

我正在使用使用水线orm的sails-postgresql适配器。

我有一个我想连接的现有数据库。

如果我使用generate something

创建模型

然后在我的模型中我有

attributes:{
    title:{type:'String'}
}

如果我浏览到localhost / something,orm会删除除{title>之外的something表中的所有列。

有没有办法阻止它这样做?此应用不应删除此数据库中的列。

谢谢!

1 个答案:

答案 0 :(得分:26)

我是Sails-Postgresql的作者。 Sails有一个名为Waterline的ORM,用于管理数据。默认设置假定您希望auto-migrate数据库与您的模型属性匹配。因为Postgresql是一个SQL数据库,所以Sails-Postgresql适配器有一个名为syncable的设置,默认为true。这在像redis这样的NoSQL数据库中是错误的。

如果您想自己管理数据库列,这很容易关闭。您可以将migrate: safe添加到模型中,并且在启动Sails时不会尝试更新数据库架构。

module.exports = {
  adapter: 'postgresql',
  migrate: 'safe',
  attributes: {
    title: { type: 'string' }
  }
};

Sails没有像Rails中的迁移那样的东西。它使用自动迁移尝试从开发过程中删除它,然后将生产模式更新给您。