Как создать таблицу базы данных из определения модели sequelizejs? - PullRequest
0 голосов
/ 08 марта 2019

Есть несколько моделей, определенных с sequelizejs для моего проекта nodejs. Вот пример модели события в event.js:

const Event = db.define('event', {
    id: {type: Sql.INTEGER,
         primaryKey:true,
         min: 1},
    name: {type: Sql.STRING,
           min:2,
           allowNull: false,
        }, 
    event_info: {type: Sql.JSON},
    current_step: {type: Sql.STRING},
    customer_id: {type: Sql.INTEGER},
    access_list: {type: Sql.JSON},
    event_snapshot: {type: Sql.JSON},
    event_category_id: {type: Sql.INTEGER,
            },
    status: {type: Sql.STRING,
             isIn: ['active', 'cancelled', 'aborted', 'completed']},
    last_updated_by_id: {type: Sql.INTEGER},
    createdAt: Sql.DATE,
    updatedAt: Sql.DATE
}); 

Есть ли способ создать таблицу event из event.js в командной строке?

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Вы можете сделать это, как упомянуто @Chase, но, по моему скромному мнению, вы должны иметь разделенные файлы для моделей и миграций.

Таким образом, ваше текущее состояние моделей будет представлено в файлах моделей (например,тот, который у вас есть) и историческое состояние вашей базы данных в Миграция файлах.

Синхронизация всегда удалит все существующие таблицы и создаст их с нуля с использованием моделей.Упомянутое решение действительно создаст таблицу или обновит ее (хотя будет выполнено удаление, а затем создание), но вы потеряете все данные в процессе.Миграции, как правило, предпочтительнее.

1 голос
/ 08 марта 2019

Вы можете, если вы создадите экземпляр Sequelize и вызовете sync в вашем скрипте event.js.

...