在 laravel 4 中即时克隆数据库或运行 sql 转储

Posted

技术标签:

【中文标题】在 laravel 4 中即时克隆数据库或运行 sql 转储【英文标题】:Clone database or run sql dump on the fly in laravel 4 【发布时间】:2015-06-29 22:15:44 【问题描述】:

我在 laravel 4 中有一个大项目,我需要动态创建包含大量表的新数据库。我可以即时创建空数据库,但如何用表格填充它?我不能即时使用迁移,因为这个应用程序有很多权限,所以用户不能通过它们。

第一个选项是克隆空数据库(从数据中为空,但带有表)。 第二个选项是即时运行 sql 转储文件。

谁能解释一下怎么做?

【问题讨论】:

【参考方案1】:

Laravel 提供了一个通过播种填充数据库的选项。检查docs。

Laravel 还提供了一种简单的方法来为您的数据库添加测试种子 使用种子类的数据。所有种子类都存储在 应用程序/数据库/种子。种子类可以有任何你想要的名字,但是 可能应该遵循一些合理的约定,例如 UserTableSeeder 等。默认情况下,定义了一个 DatabaseSeeder 类 为你。在这个类中,您可以使用 call 方法来运行其他 种子类,允许您控制播种顺序。

在定义种子类之后。您可以通过命令为数据库播种

php artisan db:seed

查看blog post,了解如何使用seeing 以及faker library 使用真实的测试数据预填充数据库。

如果你不能使用命令行。您可以从您的代码中调用种子命令。检查这个thread。

【讨论】:

我不能即时使用 artisan,因为它在另一台服务器上,用户没有权限。我需要在没有命令行命令的情况下即时克隆 db @user3921996 然后我想导入 sql 转储文件是你的选择。 @user3921996 你可以通过代码Artisan::call('db:seed');调用工匠种子 sql 转储是 onption,但如何在代码中做到这一点?我找不到任何相关信息 @user3921996 ***.com/questions/19751354/…

以上是关于在 laravel 4 中即时克隆数据库或运行 sql 转储的主要内容,如果未能解决你的问题,请参考以下文章

克隆 Laravel 项目但无法运行

发布windows 7桌面池之自动桌面池即时克隆

从 Git 克隆项目 Laravel 后没有页面

如何将 Django 应用程序设置保存在数据库中,或即时更改?

如何从 bitbucket 克隆 laravel 项目并使用 Sourcetree 在您的计算机上安装和运行?

laravel克隆提供程序不起作用(找不到类)