Sequelize: как импортировать определения из существующей базы данных
Мне нужно отписать определения модели для Sequelize, даже если я работаю с существующей базой данных.
Если это не требуется, тогда как можно использовать Sequelize с существующей базой данных?
Я уже определил схему базы данных в Doctrine, поэтому мне больше не придется писать еще один набор определений модели.
Ответы
Ответ 1
с Sequelize вам нужно определить структуру модели внутри вашего кода. Выполняя это, Sequelize принимает конкретную схему базы данных, если что-то не перезаписано. Короче говоря: нет, sequelize не может отразить базу данных.
Надеюсь, что помогает:)
Ответ 2
Этот проект направлен на создание Sequelize моделей из существующей схемы https://github.com/sequelize/sequelize-auto
Sequelize-Auto
Инструмент для автоматического создания моделей для SequelizeJS
через командную строку.
Установка:
npm install -g sequelize-auto
Использование:
sequelize-auto -h <host> -d <database> -u <user> -x [password] -p [port] --dialect [dialect] -c [/path/to/config] -o [/path/to/models]
Параметры:
-h, --host IP/Hostname for the database. [required]
-d, --database Database name. [required]
-u, --user Username for database. [required]
-x, --pass Password for database.
-p, --port Port number for database.
-c, --config JSON file for sending additional options to the Sequelize object.
-o, --output What directory to place the models.
-e, --dialect The dialect/engine that you're using: postgres, mysql, sqlite
Пример
sequelize-auto -o "./models" -d sequelize_auto_test -h localhost -u daniel -p 5432 -x my_password -e postgres
Производит файл/файлы, такие как ./models/Users.js
, который выглядит так:
/* jshint indent: 2 */
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Users', {
username: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null
},
touchedAt: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: null
},
aNumber: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: null
},
id: {
type: DataTypes.INTEGER,
primaryKey: true
},
createdAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: null
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: null
}
});
};
Это облегчает вам просто Sequelize.import
.