Как легко разобрать CSV-файл для использования в стратегии миграции базы данных node.js?

Я настроил и запустил стратегию миграции с помощью sequenceize-cli, чтобы таблица могла быть построена правильно. Он работает с использованием sequelize db:migrate и прекрасно создает таблицу. И sequelize db:migrate:undo удалит таблицу.

Я также включил код (согласно комментарию SE здесь ) чтобы вставить пару записей. Это тоже работает. Вот код всего этого:

'use strict';

module.exports = {
  up: function(queryInterface, DataTypes, done) {
    return queryInterface.createTable('survey', {
      id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
      },
      state: {
        type: DataTypes.TEXT
      },
      age: {
        type: DataTypes.INTEGER
      },
      race: {
        type: DataTypes.TEXT
      },
      gender: {
        type: DataTypes.TEXT
      },
      education: {
        type: DataTypes.TEXT
      },
      q1: {
        type: DataTypes.INTEGER
      },
      q2: {
        type: DataTypes.INTEGER
      },
      .
      .
      .
      q24: {
        type: DataTypes.INTEGER
      },
      q25: {
        type: DataTypes.INTEGER
      }
    }).then(function() {
      queryInterface.sequelize.query("INSERT INTO survey (state, age, race, gender, q1, q7, q24) VALUES ('Texas', 42, 'white', 'female', 5, 4, 3), ('Louisiana', 19, 'hispanic', 'male', 1, 2,5)");
      done();
    });
  },

  down: function(queryInterface, Sequelize) {
    return queryInterface.dropTable('survey');
  }
};

Но у меня есть файл CSV с более чем 3000 записей, которые необходимо использовать в качестве исходных данных. Он находится в папке db и называется survey.csv. У меня также есть папка seeders, которая, я думаю, была создана автоматически sequelize init или sequelize migration:create. В настоящее время он пуст.

Я мог бы использовать функцию конкатенации в Excel, чтобы создать упорядоченные n-кортежи данных для вставки и просто вставить эти 3000 строк в обещанную часть up, но это кажется нелепым.

Я нашел этот ответ на аналогичный вопрос, но в Rails:

Вам нужна библиотека CSV. Из документов:

arr_of_arrs = CSV.read("path/to/file.csv")

Это даст вам 2D-массив, который вы можете обрабатывать по своему усмотрению. CSV похож на IO.read, но с некоторыми дополнениями, такими как синтаксический анализ заголовков.

Похоже, что существует несколько (или больше) CSV-пакетов node, но, черт возьми, они такие сложные (например, просто названный csv).

Есть ли более простой синтаксический анализатор csv (например, для Rails), который я могу использовать для облегчения сброса csv в базу данных? Или другой метод, который не требует миллион строк лишнего кода, скопированного из электронной таблицы?


person Bon Crowder at MathFour    schedule 04.07.2017    source источник