Как импортировать mysqldump в приложение Node.js? - PullRequest
0 голосов
/ 26 мая 2018

Единственное решение, которое я нашел, было node-mysql-importer , оно ничего не делает как положено.В консоли отображается

importSQL done: ./lib/api/sqldumps/footballers2655c10.sql
DONE!
SQL dump successfully loaded

Но в базе данных ничего нет!

Вот мой код:

import http from 'http'
import app from './app'
import importer from 'node-mysql-importer'

import db from './api/models'
import config from './api/config'

const port = process.env.PORT || 3000

var mysql = require('mysql')

var con = mysql.createConnection({
  'host': config.db.host,
  'user': config.db.user,
  'password': config.db.password
})

con.connect(function(err) {
  if (err) throw err
  con.query("CREATE DATABASE IF NOT EXISTS footballers", function (err, result) {
    if (err) throw err
    sqldumpImporter ()
  })
})

const server = http.createServer(app)

function sqldumpImporter () {
  importer.config({
    'host': config.db.host,
    'user': config.db.user,
    'password': config.db.password,
    'database': config.db.database
  })

  importer.importSQL('./lib/api/sqldumps/footballers2655c10.sql').then( () => {
    console.log('SQL dump successfully loaded')
    syncSequelize()
  }).catch( err => {
    console.log(`error: ${err}`)
  })
}

function syncSequelize() {
  db.sequelize.sync()
    .then(() => {
      server.listen(port, () => console.log(`listening on port ${port}`))
    })
}

Первоначально ошибок нет, ното из-за того, что таблицы не существует, программы прекращают выполнение.

ERROR: Error: ER_NO_SUCH_TABLE: Table 'footballers.footballers' doesn't exist
[nodemon] app crashed - waiting for file changes before starting...

База данных все еще пуста после выполнения.Вот файл sql, который я пытаюсь загрузить: https://github.com/danivijay/footballers-app/blob/master/server/lib/api/sqldumps/footballers2655c10.sql

А вот моя кодовая база: https://github.com/danivijay/footballers-app/tree/master/server

Что пошло не так в моем коде?Есть ли лучшее решение для импорта файлов mysqldump (.sql) с NodeJS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...