2017-01-15 4 views
1

Im, использующий sequelize/w node и node-mysql.Узел, Sequelize, Mysql - Как определить сортировку и кодировку для моделей?

Я создаю модели с использованием sequelize-консоли, и это результат:

'use strict'; 
 
module.exports = function(sequelize, DataTypes) { 
 
    let songs = sequelize.define('songs', { 
 
    name: DataTypes.STRING, 
 
    link: DataTypes.STRING, 
 
    artist: DataTypes.STRING, 
 
    lyrics: DataTypes.TEXT, 
 
    writer: DataTypes.STRING, 
 
    composer: DataTypes.STRING 
 
    }); 
 

 
    return songs; 
 
};

Я хочу, чтобы иметь возможность определить параметры сортировки и кодировки для каждого свойства модели. Значение по умолчанию - «latin1_swedish_ci», и мне нужно его в «utf-8».

Кто-нибудь? Tnx

ответ

4

В той части, где и определяют sequelize

var sequelize = new Sequelize('database', 'username', 'password', { define: { charset: 'utf8', collate: 'utf8_general_ci', timestamps: true }, logging:false })

Для уровня Таблицы изменяющегося

sequelize.define('songs', { 
name: DataTypes.STRING, 
link: DataTypes.STRING, 
artist: DataTypes.STRING, 
lyrics: DataTypes.TEXT, 
writer: DataTypes.STRING, 
composer: DataTypes.STRING},{charset: 'utf8',collate: 'utf8_unicode_ci'}); 
+0

Кажется, что нет простого способа установить кодировку на основе каждого столбца, что является невероятной болью. – jlh

+1

@jlh есть комментарий в этом выпуске, который выполняет то, что вы ищете: https://github.com/sequelize/sequelize/issues/7110 –

+0

@GianniCarlo Спасибо! Но для меня это больше похоже на взломанную SQL-инъекцию. Не то, что я хочу в коде, что я хотел бы быть твердым и будущим доказательством. Но для некоторых случаев использования это может быть приемлемым. – jlh