2013-06-14 16 views
12

szukałem przy użyciu Sails dla aplikacji, które są rozwijających się.Korzystanie sails.js z bazy danych istniejące postgres

Używam adaptera żagle-postgresql, który używa ORM wodnej.

Mam istniejącą bazę danych, z którą chcę się połączyć.

Jeśli utworzyć model używając generate something

a potem w moim modelu mam

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

Gdybym przejść do localhost/coś ORM usuwa wszystkie kolumny w tabeli something oprócz tytułu.

Czy istnieje sposób, aby temu zapobiec? Ta aplikacja nie powinna usuwać kolumn z tej bazy danych.

Dzięki!

Odpowiedz

26

Jestem autorem Sails-Postgresql. Żagle ma ORM o nazwie Waterline, którego używa do zarządzania danymi. Domyślne ustawienie zakłada, że ​​chcesz mieć bazę danych zgodną z atrybutami modelu. Ponieważ Postgresql jest bazą danych SQL, adapter Sails-Postgresql ma ustawienie o nazwie Syncable, które domyślnie przyjmuje wartość true. Byłoby to fałszywe w bazie danych NoSQL, takiej jak redis.

to łatwo wyłączyć, jeśli chcesz zarządzać kolumn w bazie siebie. Możesz dodać migrate: safe do swojego modelu i nie będzie próbował zaktualizować schematu bazy danych po uruchomieniu Żagli.

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

Żagle nie mają nic wspólnego z migracjami w Railsach. Korzysta z auto-migracji, aby usunąć to z procesu tworzenia, a następnie pozostawia aktualizację schematu produkcyjnego.

+8

Czy istnieje konfiguracja, która ma to uczynić dla każdego modelu? – Alex

+4

Czy można zaktualizować dokumentację, aby odzwierciedlić wszystkie różne opcje? Jestem nowy w żagle i próbowałem dowiedzieć się, jak właściwie używać modelu w kontrolerze przez większą część ostatniej godziny. Dzięki –

+0

Ponieważ nie ma migracji takich jak w Railsach, co się dzieje, gdy trzeba przeprowadzić migrację, która wymaga transformacji danych? W Railsach właściwym sposobem byłoby zrobienie tego w pliku migracyjnym, ale jak to zrobić w Waterline/Sails? – Strawberry

Powiązane problemy