テーブルを適切に構築できるように、sequelize-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');
}
};
しかし、シード データとして使用する必要がある 3000 を超えるレコードを含む CSV ファイルがあります。db
フォルダにあり、 と呼ばれますsurvey.csv
。またはseeders
によって自動的に作成されたと思われるフォルダーもあります。現在空です。sequelize init
sequelize migration:create
Excel の concatenate 関数を使用して、データの順序付けられた n タプルを作成し、それらの 3000 行を の promise 部分に挿入して貼り付けることができup
ますが、それはばかげているようです。
同様の質問に対するこの返信を見つけましたが、Rails では:
CSV ライブラリが必要です。ドキュメントから:
arr_of_arrs = CSV.read("path/to/file.csv")
これにより、好きなように処理できる2D配列が得られます。
CSV
に似てIO.read
いますが、ヘッダー解析などの追加機能がいくつかあります。
一握り (またはそれ以上) の csvノードパッケージがあるように見えますが、非常に複雑です (単純な名前のcsvのように)。
データベースへの csv のダンプを容易にするために使用できる、より単純な csv パーサー (Rails 用のパーサーなど) はありますか? または、スプレッドシートから膨大な数の余分なコードをコピーする必要のない別の方法はありますか?