2017-04-10 38 views
1

我對NodeJs相當陌生,但我習慣與PHP一起使用ORM。每次我部署網站時,我都會同步到數據庫。 Ex學說:模式:更新 - 在Symfony中強制使用。NodeJs和Sequelize:什麼時候同步?

但是,在Sequelize的文檔中,他們給出了在每個查詢之前完成同步的示例。這是一個很好的做法嗎?

我剛做了一個測試,可以在沒有同步的情況下進行查詢,因此我想知道是否應該在啓動應用程序時只進行一次同步。如何使用NodeJs開發人員工作?

在這個例子中,我既可以做:

User.sync().then(function() { 
    return User.create({ 
     firstName: 'John', 
     lastName: 'Hancock', 
     locale: 'en' 
    }); 
}); 

User.create({ 
    firstName: 'John', 
    lastName: 'Hancock', 
    locale: 'en' 
}); 

不同的是,在第二種情況下,我不答應鏈,所以我不能做到這一點,取決於用戶創建任務而不是自己創造一個承諾。

感謝)

回答

0

.sync()方法在數據庫中創建丟失的表。

參見:http://docs.sequelizejs.com/en/v3/docs/schema/#syncing

我想,它是包含在實例,以確保他們甚至工作的時候你沒有在數據庫中這些表還沒有,所以你沒有運行create table手動。

我不會那樣做一般代碼,尤其是在生產環境中,因爲通常不希望代碼默默地更改數據庫模式,您通常希望自己控制過程。

但是對於開發而言,當您更改模型時不必運行任何db遷移腳本可能很有用,但我不希望它每次都能正常工作。

+0

謝謝!是的,我明白它爲我們創造了桌子。這就是爲什麼我每次查詢時發現它是多餘的。如果你只做一次,你會做什麼?就像在index.js中一樣,您可以調用一次User.sync,例如?或者你有分開的腳本不能繼續生產? – unadivadantan

相關問題