Я настроил и запустил стратегию миграции с помощью 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 в базу данных? Или другой метод, который не требует миллион строк лишнего кода, скопированного из электронной таблицы?