首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Laravel种子和sql文件填充数据库

使用Laravel种子和sql文件填充数据库
EN

Stack Overflow用户
提问于 2016-05-22 00:44:39
回答 5查看 35.9K关注 0票数 32

我从github获得了几个关于世界各国、各州和城市的.sql文件。如何使用Laravel的种子文件运行它们来填充数据库中的那些表?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-05-23 02:54:56

  1. DB::unprepared()添加到DatabaseSeeder的run方法中。
  2. 在命令行运行php artisan db:seed。 类DatabaseSeeder扩展Seeder { public function (){雄辩式:;$this->call('UserTableSeeder');$this->命令->info(‘User table seeded!');$path = 'app/developer_docs/countries.sql';DB::un准备(file_get_contents($path));$this->命令->info(’Country table种子!‘);}}
票数 90
EN

Stack Overflow用户

发布于 2017-04-04 14:36:04

我找到了一个包,它可以从数据库表和行创建种子文件。它目前支持Laravel 4、5、6、7、8和9:

https://github.com/orangehill/iseed

最后,它基本上就像这样简单:

代码语言:javascript
复制
php artisan iseed my_table

或多次:

代码语言:javascript
复制
php artisan iseed my_table,another_table
票数 14
EN

Stack Overflow用户

发布于 2020-07-03 13:33:42

正如其他答案所使用的那样,DB::unprepared 不使用更复杂的文件。

另一个更好的解决方案是直接在进程中使用MySQL cli:

代码语言:javascript
复制
$process = new Process([
            'mysql',
            '-h',
            DB::getConfig('host'),
            '-u',
            DB::getConfig('username'),
            '-p' . DB::getConfig('password'),
            DB::getConfig('database'),
            '-e',
            "source path/to/schema.sql"
        ]);
        $process->mustRun();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37369452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档