Sequelize.js Sequelize-可以多次定义模型吗?我可以多次呼叫sync吗?

Sequelize.js Sequelize-可以多次定义模型吗?我可以多次呼叫sync吗?,sequelize.js,Sequelize.js,关于sequelize对象的生命周期,我有几个问题 在您之后,如果连接中断会发生什么情况?如何处理 我可以通过调用sequelize.define()。可以重复多次吗?我可以动态地重新定义用户吗?现有实例会发生什么情况 由于我sequelize.sync()来同步数据库,所以我对多次调用它是否合适感兴趣 多谢各位 我相信在请求发生时就建立了连接。Sequelize不会“保持打开”到数据库的连接。如果连接断开并返回,并且在此期间发出了一个查询,但没有连接,则查询将失败。我想我会花时间解决数据库可靠

关于sequelize对象的生命周期,我有几个问题

  • 在您之后,如果连接中断会发生什么情况?如何处理

  • 我可以通过调用
    sequelize.define()。可以重复多次吗?我可以动态地重新定义用户吗?现有实例会发生什么情况

  • 由于我
    sequelize.sync()
    来同步数据库,所以我对多次调用它是否合适感兴趣

  • 多谢各位

  • 我相信在请求发生时就建立了连接。Sequelize不会“保持打开”到数据库的连接。如果连接断开并返回,并且在此期间发出了一个查询,但没有连接,则查询将失败。我想我会花时间解决数据库可靠性问题,而不是尝试其他意味着更多代码的选项,但这是我的观点

  • 您应该将define()看作是在应用程序启动期间在dev box上的db上设置表的一种方法。理想情况下,定义应该只执行一次。尽管您可以调用define任意次数,但我相信表的状态将是“last define call wins”。根据您的配置,define也将对您的表执行拖放/创建操作,因此您需要确保了解调用define的时间和原因

  • 您必须调用sync以保持您的定义或确保它们存在于现有数据库中。您肯定不想多次调用它,对sequelize实例的引用应该是单例

  • 当然,您可以在dev中执行任何您想执行的操作,但是在类似于产品的设置中运行sequelize时,您可能不希望sync运行任何定义,而只是验证定义中存在的模型是否与现有模式匹配,并且sync应该只调用一次,它的结果应该被用作单例实例