Использование sails.js с существующей базой данных postgres

Я искал возможность использовать Sails для приложения, которое мы разрабатываем.

Я использую адаптер sails-postgresql, который использует орм ватерлинии.

У меня есть база данных, к которой я хочу подключиться.

Если я создам модель, используя generate something

а затем в моей модели у меня есть

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

Если я перейду на localhost / something, orm удалит все столбцы в something таблице, кроме заголовка.

Есть ли способ остановить это? Это приложение не должно удалять столбцы в этой базе данных.

Спасибо!


person Senica Gonzalez    schedule 14.06.2013    source источник


Ответы (1)


Я автор Sails-Postgresql. В Sails есть ORM под названием Waterline, который он использует для управления данными. По умолчанию предполагается, что вы хотите, чтобы ваша база данных соответствовала атрибутам вашей модели. Поскольку Postgresql - это база данных SQL, адаптер Sails-Postgresql имеет параметр syncable, который по умолчанию имеет значение true. Это было бы неверно в базе данных NoSQL, такой как redis.

Это легко отключить, если вы хотите самостоятельно управлять столбцами базы данных. Вы можете добавить migrate: safe в свою модель, и он не будет пытаться обновить схему вашей базы данных при запуске Sails.

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

В Sails нет ничего похожего на миграции в Rails. Он использует автоматическую миграцию, чтобы попытаться удалить это из процесса разработки, а затем оставляет вам обновление вашей производственной схемы.

person particlebanana    schedule 20.06.2013
comment
Есть ли такая конфигурация для каждой модели? - person Alex; 01.09.2013
comment
Не могли бы вы обновить документацию, чтобы отразить все различные варианты? Я новичок в парусном спорте и большую часть последнего часа пытался понять, как на самом деле ИСПОЛЬЗОВАТЬ модель в контроллере. Спасибо - person Andrew Rhyne; 09.10.2013
comment
Поскольку нет миграций, как в Rails, что происходит, когда вам нужно запустить миграцию, требующую преобразования данных? В Rails правильным способом было бы сделать это в файле миграции, но как это сделать в Waterline / Sails? - person Strawberry; 19.02.2014
comment
@Alex в Sails v0.10.x, вы можете использовать конфигурацию sails.config.model в config/model.js, чтобы установить любое свойство для всех моделей (воспринимайте это как определение вашей базовой модели). - person mikermcneil; 05.03.2014
comment
@Strawberry Здесь есть реализация ручной миграции в стиле Rails для Sails: github.com/BlueHotDog/sails- миграции - person mikermcneil; 05.03.2014