๐ฑ Seeders โ
Popule seu banco de dados com paรญses, regiรตes e traduรงรตes em poucos comandos โ do ambiente local ร produรงรฃo. ๐
After migrations are in place, Laravel Countries populates countries, regions, and translations through language seeders. This page covers the recommended install flow, production deployment, and how to run seeders manually when needed.
๐ Table of contents โ
- ๐ Quick install
- ๐ญ Production deployment
- โ ๏ธ Why
--forceis required - ๐ง Custom database connection
- ๐ Related commands
- โ Cheat sheet
๐ Quick install (local development) โ
php artisan w-countries:install๐ก Tip: the interactive installer walks you through migrations, language selection, and config publishing โ perfect for getting started locally with zero guesswork.
๐ญ Production deployment (Laravel 11, 12, and 13) โ
In production, Laravel requires explicit confirmation before running seeders. No worries โ the package handles this automatically whenever you use the built-in commands with --force. โ
1๏ธโฃ Full non-interactive install โ
Use this when you want migrations + seeders + config publishing in a single step:
php artisan w-countries:install --force| ๐ฏ Goal | Command |
|---|---|
| Seed English only (default) | php artisan w-countries:install --force |
| Seed specific languages | php artisan w-countries:install --force --languages=en,pt,es |
| Seed all available languages | php artisan w-countries:install --force --languages=all |
2๏ธโฃ Seed only (migrations already deployed) โ
๐ฅ The most common production scenario: migrations ran during deploy, and you only need the data.
php artisan w-countries:seed| ๐ฏ Goal | Command |
|---|---|
| Seed specific languages | php artisan w-countries:seed --languages=en,pt,es |
| Seed all languages | php artisan w-countries:seed --all |
3๏ธโฃ Manual db:seed commands โ
If you prefer running Laravel's native seeder command directly, always pass --force in production. Replace mysql with your connection name when using a custom database (see Supported Databases).
๐ฌ๐ง English โ required, includes all countries and regions:
php artisan db:seed --class="Lwwcas\LaravelCountries\Database\Seeders\LwwcasDatabaseSeeder" --database=mysql --force๐ Click to expand โ all additional language seeders
| Language | Locale | Seeder class |
|---|---|---|
| ๐ธ๐ฆ Arabic | ar | Lwwcas\LaravelCountries\Database\Seeders\Languages\ArabicLanguageSeeder |
| ๐ณ๐ฑ Dutch | nl | Lwwcas\LaravelCountries\Database\Seeders\Languages\DutchLanguageSeeder |
| ๐ซ๐ท French | fr | Lwwcas\LaravelCountries\Database\Seeders\Languages\FrenchLanguageSeeder |
| ๐ฉ๐ช German | de | Lwwcas\LaravelCountries\Database\Seeders\Languages\GermanLanguageSeeder |
| ๐ฎ๐น Italian | it | Lwwcas\LaravelCountries\Database\Seeders\Languages\ItalianLanguageSeeder |
| ๐ต๐น Portuguese | pt | Lwwcas\LaravelCountries\Database\Seeders\Languages\PortugueseLanguageSeeder |
| ๐ท๐บ Russian | ru | Lwwcas\LaravelCountries\Database\Seeders\Languages\RussianLanguageSeeder |
| ๐ช๐ธ Spanish | es | Lwwcas\LaravelCountries\Database\Seeders\Languages\SpanishLanguageSeeder |
| ๐น๐ท Turkish | tr | Lwwcas\LaravelCountries\Database\Seeders\Languages\TurkishLanguageSeeder |
Example for Portuguese ๐ต๐น:
php artisan db:seed --class="Lwwcas\LaravelCountries\Database\Seeders\Languages\PortugueseLanguageSeeder" --database=mysql --force๐ก Shortcut
Run php artisan w-countries:seed --show-commands to print the full list of manual commands for your configured database connection.
โ ๏ธ Why --force is required in production โ
On Laravel 11, 12, and 13, the db:seed command asks for confirmation whenever APP_ENV=production. If a command runs seeders silently โ without showing that prompt โ the process hangs until input is received. ๐
โ
The fix: every seed command in this package passes --force automatically, so production deploys complete without any interaction.
๐ง Custom database connection โ
When using a dedicated connection (for example countries), pass it to every command:
php artisan w-countries:seed --languages=en,ptThe connection is read from
config/w-countries.php(thedriverkey). Manual commands must use that same value for--database:
php artisan db:seed --class="Lwwcas\LaravelCountries\Database\Seeders\LwwcasDatabaseSeeder" --database=countries --force๐ Related commands โ
| Command | Purpose |
|---|---|
๐งฉ w-countries:install | Full setup: migrations, seeders, config |
๐ฑ w-countries:seed | Run language seeders only |
๐ w-countries:languages | Install or uninstall languages interactively |
โ Cheat sheet โ
๐ Click to see every command at a glance
# Local development
php artisan w-countries:install
# Production โ full install
php artisan w-countries:install --force
php artisan w-countries:install --force --languages=en,pt,es
php artisan w-countries:install --force --languages=all
# Production โ seed only
php artisan w-countries:seed
php artisan w-countries:seed --languages=en,pt,es
php artisan w-countries:seed --all
# Manual db:seed
php artisan db:seed --class="Lwwcas\LaravelCountries\Database\Seeders\LwwcasDatabaseSeeder" --database=mysql --force
# Custom database connection
php artisan db:seed --class="Lwwcas\LaravelCountries\Database\Seeders\LwwcasDatabaseSeeder" --database=countries --force
# Show all manual commands
php artisan w-countries:seed --show-commandsPrecisa de ajuda? Abra uma issue no GitHub ๐ฌ
