Size: a a a

Sequelize - community (eng/ru)

2020 August 13

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
@Version81 чат признан крупным)
источник

z

z̛e͏́͠r͜c҉ in Sequelize - community (eng/ru)
Grigorii K. Shartsev
@Version81 чат признан крупным)
это успех
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Grigorii K. Shartsev
@Version81 чат признан крупным)
Та уже давно)) чищу прост
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
@Version81 нужна чистка
источник
2020 August 18

Ю

Юрий in Sequelize - community (eng/ru)
вопрос, как сделать так чтобы когда я делаю миграцию, process.env работал? или как сделать правильно?
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Юрий
вопрос, как сделать так чтобы когда я делаю миграцию, process.env работал? или как сделать правильно?
process.env = это переменная процеса. надо ее задать при вызове миграции
источник

Ю

Юрий in Sequelize - community (eng/ru)
например?
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Юрий
например?
вы уже работали с переменными процесса?
источник

Ю

Юрий in Sequelize - community (eng/ru)
нет, наверное
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
вот что это. статья о переменных окружения: https://habr.com/ru/company/ruvds/blog/351254/

вот что я использую для удобства. https://www.npmjs.com/package/cross-env
источник

Ю

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

Ю

Юрий in Sequelize - community (eng/ru)
если я правильно тебя понял то я юзаю .env
источник

Ю

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

Ю

Юрий in Sequelize - community (eng/ru)
и все работает, но когда я из терминала пытаюсь запустить миграцию, то она не работает
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Юрий
и все работает, но когда я из терминала пытаюсь запустить миграцию, то она не работает
Да, нужно задавать их, как в статье
источник

Ю

Юрий in Sequelize - community (eng/ru)
спс
источник
2020 August 24

AV

Alex V. in Sequelize - community (eng/ru)
Всем привет! Использую Sequelize первый день, помогите, пожалуйста (Google не помог в течение нескольких часов): в БД (PostgreSQL) при изменении записи не меняется значение поля updatedAt, а также я не вижу внешнего ключа (игрок может сыграть много игр, но у каждой игры - свой игрок)

const { Model } = require('sequelize')

module.exports = (sequelize, DataTypes) => {
 class Game extends Model {
   static associate(models) {
     Game.belongsTo(models.User, {
       foreignKey: 'user_id',
       foreignKeyConstraint: true,
       as: 'user'
     })
   }
 }

 Game.init({
   game_number: DataTypes.BIGINT,
   user_id: DataTypes.BIGINT,
   scores: DataTypes.INTEGER
 }, {
   sequelize,
   modelName: 'Game'
 })

 return Game
}


co
nst { Model } = require('sequelize')

module.exports = (sequelize, DataTypes) => {
 class User extends Model {
   static associate(models) {
     User.hasMany(models.Game, {
       foreignKey: 'user_id',
       foreignKeyConstraint: true,
       as: 'games',
       onDelete: 'CASCADE',
       onUpdate: 'CASCADE'
     })
   }
 }

 User.init({
   name: DataTypes.STRING
 }, {
   sequelize,
   modelName: 'User'
 })

 return User
}

/* eslint-disable no-unused-vars */
module.exports = {
 up: async (queryInterface, Sequelize) => {
   await queryInterface.createTable('games', {
     id: {
       allowNull: false,
       autoIncrement: true,
       primaryKey: true,
       type: Sequelize.BIGINT
     },
     game_number: {
       allowNull: false,
       defaultValue: 1,
       type: Sequelize.BIGINT
     },
     user_id: {
       allowNull: false,
       type: Sequelize.BIGINT
     },
     scores: {
       allowNull: false,
       defaultValue: 0,
       type: Sequelize.INTEGER
     },
     createdAt: {
       allowNull: false,
       defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
       field: 'date_created',
       type: Sequelize.DATE
     },
     updatedAt: {
       allowNull: false,
       defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
       // defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
       field: 'date_updated',
       onUpdate: Sequelize.literal('CURRENT_TIMESTAMP'),
       type: Sequelize.DATE
     }
   }, {
     uniqueKeys: {
       user_id_game_number_key: {
         fields: ['user_id', 'game_number']
       }
     }
   })
 },

 down: async (queryInterface, Sequelize) => {
   await queryInterface.dropTable('games')
 }
}
источник

AV

Alex V. in Sequelize - community (eng/ru)
Видел несколько раз такую вещь
sequelize.sync()
, пока гуглил, это как-то связано с моей проблемой? Мне стоит это использовать? Если есть хороший пример, скиньте, пожалуйста.
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Alex V.
Видел несколько раз такую вещь
sequelize.sync()
, пока гуглил, это как-то связано с моей проблемой? Мне стоит это использовать? Если есть хороший пример, скиньте, пожалуйста.
Нет, это создание бд по моделям
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Alex V.
Всем привет! Использую Sequelize первый день, помогите, пожалуйста (Google не помог в течение нескольких часов): в БД (PostgreSQL) при изменении записи не меняется значение поля updatedAt, а также я не вижу внешнего ключа (игрок может сыграть много игр, но у каждой игры - свой игрок)

const { Model } = require('sequelize')

module.exports = (sequelize, DataTypes) => {
 class Game extends Model {
   static associate(models) {
     Game.belongsTo(models.User, {
       foreignKey: 'user_id',
       foreignKeyConstraint: true,
       as: 'user'
     })
   }
 }

 Game.init({
   game_number: DataTypes.BIGINT,
   user_id: DataTypes.BIGINT,
   scores: DataTypes.INTEGER
 }, {
   sequelize,
   modelName: 'Game'
 })

 return Game
}


co
nst { Model } = require('sequelize')

module.exports = (sequelize, DataTypes) => {
 class User extends Model {
   static associate(models) {
     User.hasMany(models.Game, {
       foreignKey: 'user_id',
       foreignKeyConstraint: true,
       as: 'games',
       onDelete: 'CASCADE',
       onUpdate: 'CASCADE'
     })
   }
 }

 User.init({
   name: DataTypes.STRING
 }, {
   sequelize,
   modelName: 'User'
 })

 return User
}

/* eslint-disable no-unused-vars */
module.exports = {
 up: async (queryInterface, Sequelize) => {
   await queryInterface.createTable('games', {
     id: {
       allowNull: false,
       autoIncrement: true,
       primaryKey: true,
       type: Sequelize.BIGINT
     },
     game_number: {
       allowNull: false,
       defaultValue: 1,
       type: Sequelize.BIGINT
     },
     user_id: {
       allowNull: false,
       type: Sequelize.BIGINT
     },
     scores: {
       allowNull: false,
       defaultValue: 0,
       type: Sequelize.INTEGER
     },
     createdAt: {
       allowNull: false,
       defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
       field: 'date_created',
       type: Sequelize.DATE
     },
     updatedAt: {
       allowNull: false,
       defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
       // defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
       field: 'date_updated',
       onUpdate: Sequelize.literal('CURRENT_TIMESTAMP'),
       type: Sequelize.DATE
     }
   }, {
     uniqueKeys: {
       user_id_game_number_key: {
         fields: ['user_id', 'game_number']
       }
     }
   })
 },

 down: async (queryInterface, Sequelize) => {
   await queryInterface.dropTable('games')
 }
}
Чекайте синтаксис, дебажте. По доке делал, все работало
источник