2014-10-02 4 views
4

У меня есть несколько вопросов о времени жизни объекта sequelizeSequelize - модели могут быть определены несколько раз? Могу ли я вызвать синхронизацию несколько раз?

  1. После вас create a new instance and authenticate, что произойдет, если соединение падает? Как обращаться?

  2. Я могу define a model по телефону sequelize.define(). Можно ли это сделать несколько раз? Могу ли я переопределить User на лету? Что происходит с существующими экземплярами?

  3. С тех пор, как я have to callsequelize.sync() для синхронизации базы данных, мне интересно, если это нормально, назовите ее несколько раз.

Спасибо

ответ

4
  1. Я считаю, что соединения сделаны в момент запроса происходит. Sequelize не поддерживает связь с базой данных. Если соединение падает и возвращается, и запрос был выпущен в течение того времени, соединение не может быть выполнено, запрос завершится с ошибкой. Я думаю, что я потратил бы время на решение проблемы надежности базы данных, а не на другие варианты, которые означают больше кода, но это мое мнение.

  2. Вы должны думать о define() как способе настройки таблиц на db в блоке dev во время запуска вашего приложения. В идеале, определение следует делать только один раз. Вы можете вызывать определение столько раз, сколько хотите, но я считаю, что состояние таблицы будет «последним определением выигрышей вызова». в зависимости от вашей конфигурации, define также сделает DROP/CREATE вашей таблицы, поэтому вы хотите убедиться, что вы понимаете, когда и почему определяется, что вызов вызван.

  3. Вы должны вызвать синхронизацию, чтобы сохранить свои определения или убедиться, что они присутствуют в существующей db. вы определенно не хотите называть его несколько раз, и ваша ссылка на экземпляр sequelize должна быть одиночной.

Конечно, вы можете делать все, что вы хотите в разработчика, но с точки зрения ведения sequelize в производственном типа настройки, вы, вероятно, не хотите синхронизировать для запуска ЛЮБЫХ определяет, и вместо того, чтобы просто проверить, что модель ожидает, что существующий в определениях соответствует существующей схеме, а синхронизация должна вызываться только один раз, когда-либо, и ее результат должен использоваться как экземпляр singleton.

Смежные вопросы