Size: a a a

Sequelize - community (eng/ru)

2020 January 20

ii

iCheater iCheater in Sequelize - community (eng/ru)
// index.js

'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};

//todo why import indexw
let sequelize;
if (config.use_env_variable) {
 sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
 sequelize = new Sequelize(config.database, config.username, config.password, config);
}

fs.readdirSync(__dirname)
 .filter(file => {
   return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
 })
 .forEach(file => {
   // const model = sequelize['import'](path.join(__dirname, file));
   const model = require(path.join(__dirname, file))(sequelize, Sequelize);
   db[model.name] = model;
 });

Object.keys(db).forEach(modelName => {
 if (db[modelName].associate) {
   db[modelName].associate(db);
 }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
iCheater iCheater
var Project = require('project'); ?
Можно так, только не пиши var, это уже стандартов 5 как нежелательный синтаксис)
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
Grigorii K. Shartsev
Можно так, только не пиши var, это уже стандартов 5 как нежелательный синтаксис)
забываю)
const Project = require('./project.js')
// если так
User.hasOne(Project);

если так, то тоже самое)

home/cheater/projects/expressServer/node_modules/sequelize/lib/associations/mixin.js:93
     throw new Error(${source.name}.${_.lowerFirst(Type.name)} called with something that's not a subclass of Sequelize.Model);
     ^

Error: user.hasOne called with something that's not a subclass of Sequelize.Model
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Не совсем так, точнее, если ты экспортируешь не юзера, а функцию его описания.
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
Grigorii K. Shartsev
Не совсем так, точнее, если ты экспортируешь не юзера, а функцию его описания.
и тут становится не понятно
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
iCheater iCheater
и тут становится не понятно
Ты смешал несколько подходов.

const Project = require('./project.js')

Вот только в project.js ты не экспортируешь класс Project, а экспортируешь функцию...

Залей код туда, где его удобнее, читать, чем просто текстом в телеге (даже без моно шрифта)
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
iCheater iCheater
// index.js

'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};

//todo why import indexw
let sequelize;
if (config.use_env_variable) {
 sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
 sequelize = new Sequelize(config.database, config.username, config.password, config);
}

fs.readdirSync(__dirname)
 .filter(file => {
   return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
 })
 .forEach(file => {
   // const model = sequelize['import'](path.join(__dirname, file));
   const model = require(path.join(__dirname, file))(sequelize, Sequelize);
   db[model.name] = model;
 });

Object.keys(db).forEach(modelName => {
 if (db[modelName].associate) {
   db[modelName].associate(db);
 }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;
Либо делай вот так (там, где ты нашёл этот код, есть полный пример)
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
Grigorii K. Shartsev
Либо делай вот так (там, где ты нашёл этот код, есть полный пример)
в том то и дело, что хочу переписать так, чтобы все что связанно с  sequelize было максимально похоже на то, как сейчас написано в доках
источник

K

Kostya in Sequelize - community (eng/ru)
Подскажите
при криейте вылазил ошибка
Можно посмотреть какое именно поле её вызывает


SequelizeUniqueConstraintError: Validation error
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
iCheater iCheater
в том то и дело, что хочу переписать так, чтобы все что связанно с  sequelize было максимально похоже на то, как сейчас написано в доках
Описывай связи внутри статического метода associate, в остальном вроде всё норм
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
Grigorii K. Shartsev
Описывай связи внутри статического метода associate, в остальном вроде всё норм
User.associate = function(models) {
   models.User.hasOne(models.Project)
   };
?  ты про это?
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
iCheater iCheater
User.associate = function(models) {
   models.User.hasOne(models.Project)
   };
?  ты про это?
если так, то это тоже не работает, т.к.
в index.js после того как считали все модели мы делаем
Object.keys(db).forEach(modelName => {
 if (db[modelName].associate) {
   db[modelName].associate(db);
 }
});
и передаем db как аргумент
в общем опять Error: Task.belongsTo called with something that's not a subclass of Sequelize.Model
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
iCheater iCheater
если так, то это тоже не работает, т.к.
в index.js после того как считали все модели мы делаем
Object.keys(db).forEach(modelName => {
 if (db[modelName].associate) {
   db[modelName].associate(db);
 }
});
и передаем db как аргумент
в общем опять Error: Task.belongsTo called with something that's not a subclass of Sequelize.Model
Ищи, где ты вызываешь belongsTo
источник

T

The Fallen Phoenix in Sequelize - community (eng/ru)
GG
привет. есть проблема
делаю один запрос - ок
делаю второй,
потом опять первый и сортировка меняется.
Но если делать подряд несколько первых запросов то сортировка не меняюся.
использую секулайз, во втором запросе делаю выборку методом .findAndCountAll
есть подозрения что секулайз не просто выборку делает но и пишет что-то.
как пофиксить?
SQL работает с неупорядоченными множествами. Если нужен определенный порядок, это нужно указывать явно. В противном случае результат будет с точностью до порядка
источник

T

The Fallen Phoenix in Sequelize - community (eng/ru)
The Fallen Phoenix
SQL работает с неупорядоченными множествами. Если нужен определенный порядок, это нужно указывать явно. В противном случае результат будет с точностью до порядка
Ключ order, к слову пример так себе, так как id имеет unique constraint и сортировка по name не будет играть роли. Другое дело если поменять две строчки местами
источник
2020 January 21

ii

iCheater iCheater in Sequelize - community (eng/ru)
что вы думаете о
global.sequelize = new Sequelize({...}) ? 😁
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
не стоит глобал трогать
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
он для системных нужд
источник
2020 January 22

KG

Kool Guy in Sequelize - community (eng/ru)
Кто нибудь использовал UUID в качестве primary key? Были какие нибудь проблемы, с которыми столкнулись?
источник