Domyślne źródło danych "db" zostaje umieszczone w pamięci. Dlatego Twoje dane nie są przechowywane po ponownym uruchomieniu aplikacji. Musisz zainstalować odpowiednie złącze do bazy danych, a następnie musisz dodać źródło danych do bazy danych wewnątrz serwera/datasources.js.
http://docs.strongloop.com/display/public/LB/Connecting+models+to+data+sources
Jeśli utworzono aplikację za pomocą polecenia „SLC sprzężenia zwrotnego”, wówczas źródło danych zawiera tylko złącze pamięci. Sprawdzić datasources.js pliku i będzie można zobaczyć coś takiego:
{
"db": {
"name": "db",
"connector": "memory"
}
}
Jeśli chcesz utrzymywać swoje dane, na przykład w PostgreSQL (proces jest prawie taka sama dla wszystkich obsługiwanych złącza), trzeba rozwinąć swoje datasoruces. Plik json z informacjami o bazie danych:
{
"db": {
"name": "db",
"connector": "memory"
},
"mydata": {
"host": "db_host",
"database": "your_database_name",
"username": "your_db_username",
"password": "your_db_password",
"connector": "postgresql"
}
}
Możesz to również zrobić za pomocą polecenia "slc loopback: datasource". Kreator pomoże ci zdefiniować źródło danych. Nie zapomnij zainstalować złącza db.
npm install loopback-connector-postgresql
Ostatnią rzeczą do zrobienia jest przypisanie źródła danych do pożądanych modeli. Możesz to zrobić za pomocą kreatora (zobacz polecenie slc loopback: model command) lub możesz ręcznie edytować plik server/model-config.json.
{
"User": {
"dataSource": "mydata",
"public": true
},
"AccessToken": {
"dataSource": "mydata",
"public": false
},
"ACL": {
"dataSource": "mydata",
"public": false
},
"RoleMapping": {
"dataSource": "mydata",
"public": false
},
"Role": {
"dataSource": "mydata",
"public": false
}
}
UPDATE Można spróbować ten fragment kodu, aby zaktualizować tabel z modeli. Umieścić swój kod gdzieś na serwerze/server.js
var appModels = ['User', 'AccessToken', 'ACL', 'RoleMapping', 'Role'];
var ds = app.dataSources.mydata;
ds.isActual(appModels, function(err, actual) {
if (!actual) {
ds.autoupdate(appModels, function(err) {
if (err) throw (err);
});
}
});
polecam do zapoznania się o tworzeniu/aktualizacji schematu bazy danych z modeli na stronie strongloop. Zwrócić uwagę przylegać różnicy między autoupdate i automigrate funkcji
http://docs.strongloop.com/display/public/LB/Creating+a+database+schema+from+models
Dziękuję za odpowiedź. Próbowałem już tego samego. Tylko jeden problem: nie mogę przeprowadzić migracji do bazy danych. Próbowałem już używać Arc i polecenia cli. –
Czy możesz wyjaśnić więcej szczegółów, co próbujesz? –
Mam zaktualizowaną odpowiedź za pomocą kodu i łącza do dokumentów, gdzie można przeczytać więcej o aktualizowaniu schematu z modeli. –