Skip to content
Erick Tucto edited this page Nov 20, 2018 · 1 revision

CSV2SEED

Introducción

csv2seed es un generador de seeders de Laravel apartir de un archivo csv.

Terminal

Manual

Uso Básico

csv2seed solo necesita como primer argumento la ruta del archivo .csv

~ 🔥 csv2seed /home/erick/users.csv

Esto creará un archivo txt con el mismo nombre en este caso seria users.txt en el mismo directorio del archivo csv.

Users::create([
    "name" => "Erick",
    "email" => "[email protected]",
    "github" => "@ErickTucto
]);
Users::create([
    "name" => "Taylor",
    "email" => "[email protected]",
    "github" => "@taylorotwell
]);

Comandos

  1. --model, -m

Por defecto se capitaliza el nombre del archivo csv para el modelo [1], con la opción --model puedes espeficar el nombre del modelo

~ 🔥 csv2seed --model Person /home/erick/users.csv

Resultado:

Person::create([
    "name" => "Erick",
    "email" => "[email protected]",
    "github" => "@ErickTucto"
]);
Person::create([
    "name" => "Taylor",
    "email" => "[email protected]",
    "github" => "@taylorotwell"
]);

Atención: La opción --model es sencible a minúsculas y mayúsculas

  1. --hasnt-header, -H

Esta es un bandera, csv2seed siempre toma la primera fila del archivo csv para los nombres de los archivos. En caso no tenga el nombre del los atributos en la primera fila, use esta opción --hasnt-header, luego debe de especificar el nombre de los atributos con --attribute. Comparar estos archivos [2]

~ 🔥 csv2seed --hasnt-header --attributes first_name,email,username Person /home/erick/users.csv
  1. --attribute, -a

Si ser explicito y cambiar el nombre de los atributos puede usar esta opcion separando los nombres de los atributos por ,

~ 🔥 csv2seed --attributes first_name,email,username /home/erick/users.csv

Resultado:

Person::create([
    "first_name" => "Erick",
    "email" => "[email protected]",
    "username" => "@ErickTucto"
]);
Person::create([
    "first_name" => "Taylor",
    "email" => "[email protected]",
    "username" => "@taylorotwell"
]);

Se está trabajando en los feature para saltear atributos [3] y eliminarlos en la salida [4]

  1. --delimiter, -d

Con esta opción puede especificar la delimitador de columnas, csv2seed por defecto usa ; como delimitador. Comparar estos archivos [2]

~ 🔥 csv2seed --delimiter , /home/erick/users.csv

Actualmente csv2seed no puede capturar la tabulación como delimitador [5]

  1. Indentación

Puede especificar el indentado por espacios con --spaces.

~ 🔥 csv2seed --spaces 2 /home/erick/users.csv

O usar una tabulación

~ 🔥 csv2seed --tabulation , /home/erick/users.csv

Si no quiere tener ninguna indentación puede especificarlo asi

~ 🔥 csv2seed --spaces 0 , /home/erick/users.csv
Clone this wiki locally