Download the PHP package flynsarmy/csv-seeder without Composer
On this page you can find all versions of the php package flynsarmy/csv-seeder. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package csv-seeder
CSV Seeder
Seed your database with CSV files
This package allows CSV based seeds.
Installation
Require this package in your composer.json and run composer update (or run composer require flynsarmy/csv-seeder:2.*
directly):
For PHP 7.4+
For older PHP versions
Usage
Your CSV's header row should match the DB columns you wish to import. IE to import id and name columns, your CSV should look like:
Seed classes must extend Flynsarmy\CsvSeeder\CsvSeeder
, they must define the destination database table and CSV file path, and finally they must call parent::run()
like so:
Drop your CSV into /database/seeds/csvs/your_csv.csv or whatever path you specify in your constructor above.
Configuration
In addition to setting the database table and CSV filename, the following configuration options are available. They can be set in your class constructor:
connection
(string '') Connection to use for inserts. Leave empty for default connection.insert_chunk_size
(int 500) An SQL insert statement will trigger everyinsert_chunk_size
number of rows while reading the CSVcsv_delimiter
(string ,) The CSV field delimiter.hashable
(array [password]) List of fields to be hashed before import, useful if you are importing users and need their passwords hashed. UsesHash::make()
. Note: This is EXTREMELY SLOW. If you have a lot of rows in your CSV your import will take quite a long time.offset_rows
(int 0) How many rows at the start of the CSV to ignore. Warning: If used, you probably want to set a mapping as your header row in the CSV will be skipped.mapping
(array []) Associative array of csvCol => dbCol. See examples section for details. If not specified, the first row (after offset) of the CSV will be used as the mapping.should_trim
(bool false) Whether to trim the data in each cell of the CSV during import.timestamps
(bool false) Whether or not to add created_at and updated_at columns on import.created_at
(string current time in ISO 8601 format) Only used iftimestamps
istrue
updated_at
(string current time in ISO 8601 format) Only used iftimestamps
istrue
Examples
CSV with pipe delimited values:
Specifying which CSV columns to import:
Trimming the whitespace from the imported data:
Skipping the CSV header row (Note: A mapping is required if this is done):
Specifying the DB connection to use:
Migration Guide
2.0
$seeder->hashable
is now anarray
of columns rather than a single column name. Wrap your old string value in[]
.
License
CsvSeeder is open-sourced software licensed under the MIT license