Извлекать данные из удаленного MariaDB - сервер MariaDB работает с опцией --read-only, поэтому он не может выполнить этот оператор.Sequelize / Node.js - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблема с получением данных с удаленного сервера.Я использую Sequelize ORM для связи с удаленными БД, которые имеют опцию --read-only.Я не хочу создавать, добавлять или удалять любые БД или таблицы на этом сервере, мне просто нужно получить данные с этого сервера.Вот почему я добавил опции при подключении к БД с помощью sequelize.sync ()

const express = require('express');
const ISOMessageModel = require('../../models/v1/incognito/iSOMessagesModel');
const router = express.Router();
var Sequelize = require('sequelize');

const testCheck = (req, res, next) => {
  console.log('In incognito controller');

  const sequelize = new Sequelize('db', 'user', 'password', {
    host: 'host',
    port: 3306,
    dialect: 'mysql',
    pool: {
      max: 5,
      min: 0,
      acquire: 30000,
      idle: 10000
    },
  });


  sequelize
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });

const objectModel = sequelize.define('ISOMessages',ISOMessageModel);

Хост правильный, его просто отредактировали, например.Модель выглядит следующим образом:

var Sequelize = require('sequelize');

const ISOMessageModel = {
  id: {
    type: Sequelize.STRING,
    unique: true,
    primaryKey: true,
    allowNull: false
  },
  message: {
    type: Sequelize.TEXT,
    allowNull: false
  },
  status: {
    type: Sequelize.ENUM,
    values: ['SUCCESS', 'FAILED']
  },
  provider: {
    type: Sequelize.ENUM,
    values: ['UFC', 'GC']
  },
  singularResponse: {
    type: Sequelize.TEXT
  },
  userId: {
    type: Sequelize.INTEGER
  },
  cardId: {
    type: Sequelize.STRING
  },
  amount: {
    type: Sequelize.INTEGER
  },
  commission: {
    type: Sequelize.INTEGER
  },
  location: {
    type: Sequelize.TEXT
  }
}

module.exports = ISOMessageModel;

Я синхронизирую Sequelize с параметрами:

{force: false, alter: false}

sequelize.sync({force: false, alter : false }).then(() => {

console.log('Do query from objectModel');

}).catch(function(err) {
  console.log(err, "Something went wrong with the Database Update!")
});

ошибка: ошибка: сервер MariaDB работает с параметром --read-only, поэтому он не может выполнить этот оператор.Как я выяснил после некоторых исследований {force: false, alter: false} во время синхронизации не должен записывать или обновлять данные, поэтому не могу понять, почему я получаю эту ошибку.

Спасибо.

...