PHPackages                             hilioski/csv-seeder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. hilioski/csv-seeder

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

hilioski/csv-seeder
===================

Allows seeding of the database with CSV files and extract clear unit from string

v1.0.7(10y ago)01.9kMITPHPPHP &gt;=5.3.0

Since Feb 13Pushed 10y ago1 watchersCompare

[ Source](https://github.com/djkiko20/laravel-csv-seeder)[ Packagist](https://packagist.org/packages/hilioski/csv-seeder)[ RSS](/packages/hilioski-csv-seeder/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (1)Versions (9)Used By (0)

CSV Seeder
----------

[](#csv-seeder)

### Seed your database with CSV files

[](#seed-your-database-with-csv-files)

This package allows CSV based seeds.

### Installation

[](#installation)

Require this package in your composer.json and run composer update (or run `composer require hilioski/csv-seeder` directly):

```
"hilioski/csv-seeder": "1.0.*"

```

### Usage

[](#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:

```
id,name
1,Foo
2,Bar

```

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:

```
use Flynsarmy\CsvSeeder\CsvSeeder;

class StopsTableSeeder extends CsvSeeder {

	public function __construct()
	{
		$this->table = 'your_table';
		$this->filename = base_path().'/database/seeds/csvs/your_csv.csv';
	}

	public function run()
	{
		// Recommended when importing larger CSVs
		DB::disableQueryLog();

		// Uncomment the below to wipe the table clean before populating
		DB::table($this->table)->truncate();

		parent::run();
	}
}

```

Drop your CSV into */database/seeds/csvs/your\_csv.csv* or whatever path you specify in your constructor above.

### Configuration

[](#configuration)

In addition to setting the database table and CSV filename, two other configuration options are available. They can be set in your class constructor:

- `insert_chunk_size` (int 500) An SQL insert statement will trigger every `insert_chunk_size` number of rows while reading the CSV
- `csv_delimiter` (string ,) The CSV field delimiter.
- `hashable` (string password) Hash the hashable field, useful if you are importing users and need their passwords hashed. Uses `Hash::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 =&gt; dbCol. See examples section for details. If not specified, the first row (after offset) of the CSV will be used as the mapping.

### Examples

[](#examples)

CSV with pipe delimited values:

```
public function __construct()
{
	$this->table = 'users';
	$this->csv_delimiter = '|';
	$this->filename = base_path().'/database/seeds/csvs/your_csv.csv';
}

```

Specifying which CSV columns to import:

```
public function __construct()
{
	$this->table = 'users';
	$this->csv_delimiter = '|';
	$this->filename = base_path().'/database/seeds/csvs/your_csv.csv';
	$this->mapping = [
	    0 => 'first_name',
	    1 => 'last_name',
	    5 => 'age',
	];
}

```

Skipping the CSV header row (Note: A mapping is required if this is done):

```
public function __construct()
{
	$this->table = 'users';
	$this->csv_delimiter = '|';
	$this->filename = base_path().'/database/seeds/csvs/your_csv.csv';
	$this->offset_rows = 1;
	$this->mapping = [
	    0 => 'first_name',
	    1 => 'last_name',
	    2 => 'password',
	];
}

```

Get clean unit from string between two character (Note: $first\_character and $last\_character must be set):

```
public function __construct()
{
	$this->table = 'users';
	$this->csv_delimiter = '|';
	$this->filename = base_path().'/database/seeds/csvs/your_csv.csv';
	$this->offset_rows = 1;
	$this->mapping = [
	    0 => 'first_name',
	    1 => 'last_name',
	    2 => 'password',
	];
	$this->first_character = '"';
	$this->last_character = '"';
	// ex. "Test text" => Test text
}

```

### License

[](#license)

CsvSeeder is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 79.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~116 days

Recently: every ~168 days

Total

8

Last Release

3709d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7750706?v=4)[Hristian](/maintainers/hilioski)[@hilioski](https://github.com/hilioski)

---

Top Contributors

[![Flynsarmy](https://avatars.githubusercontent.com/u/334808?v=4)](https://github.com/Flynsarmy "Flynsarmy (19 commits)")[![teodortalov](https://avatars.githubusercontent.com/u/2781820?v=4)](https://github.com/teodortalov "teodortalov (2 commits)")[![fabiosato](https://avatars.githubusercontent.com/u/607586?v=4)](https://github.com/fabiosato "fabiosato (1 commits)")[![jackfruh](https://avatars.githubusercontent.com/u/334880?v=4)](https://github.com/jackfruh "jackfruh (1 commits)")[![slakbal](https://avatars.githubusercontent.com/u/4387265?v=4)](https://github.com/slakbal "slakbal (1 commits)")

---

Tags

laravelcsvseedingseedseeds

### Embed Badge

![Health badge](/badges/hilioski-csv-seeder/health.svg)

```
[![Health](https://phpackages.com/badges/hilioski-csv-seeder/health.svg)](https://phpackages.com/packages/hilioski-csv-seeder)
```

###  Alternatives

[maatwebsite/excel

Supercharged Excel exports and imports in Laravel

12.7k152.8M852](/packages/maatwebsite-excel)[flynsarmy/csv-seeder

Allows seeding of the database with CSV files

2561.7M1](/packages/flynsarmy-csv-seeder)[rap2hpoutre/fast-excel

Fast Excel import/export for Laravel

2.3k26.3M51](/packages/rap2hpoutre-fast-excel)[jeroenzwart/laravel-csv-seeder

Seed the database with Laravel using CSV files

94407.5k2](/packages/jeroenzwart-laravel-csv-seeder)[crockett/csv-seeder

Database seeding using CSV files

23176.7k](/packages/crockett-csv-seeder)[bfinlay/laravel-excel-seeder

Seed the database with Laravel using Excel, XLSX, XLS, CSV, ODS, Gnumeric, XML, HTML, SLK files

3946.2k](/packages/bfinlay-laravel-excel-seeder)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
