关于续集对象的生命周期,我有几个问题
您之后创建一个新的实例和验证,如果连接断开时会发生什么?如何处理?
我可以通过调用来定义模型sequelize.define().可以多次完成吗?我可以动态重新定义User吗?现有实例会发生什么?
因为我必须调用 sequelize.sync()同步数据库,所以我很感兴趣,可以多次调用它.
谢谢
我相信连接是在请求发生时建立的。Sequelize 不会“保持打开”与数据库的连接。如果连接断开并恢复,并且在此期间发出查询,则无法建立连接,则查询将失败。我认为我会花时间解决数据库可靠性问题,而不是尝试其他意味着更多代码的选项,但这是我的观点。
您应该将 Define() 视为在应用程序启动期间在开发盒上的数据库上设置表的一种方法。理想情况下,定义应该只执行一次。不过,您可以根据需要多次调用定义,但我相信表状态将是“最后一次定义调用获胜”。根据您的配置,define 也会对表执行 DROP/CREATE,因此您需要确保了解定义何时以及为何被调用。
您必须调用同步才能保留您的定义或确保它们存在于现有数据库中。您绝对不想多次调用它,并且对sequelize 实例的引用应该是单例。
当然,您可以在开发中做任何您想做的事情,但是就在类似生产的设置中运行sequelize而言,您可能不希望同步运行任何定义,而只是验证它期望的模型是否存在于定义与现有模式匹配,并且sync只能被调用一次,并且其结果应该用作单例实例。
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |