Единственное решение, которое я нашел, было 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?