在 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 转储的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Django 应用程序设置保存在数据库中,或即时更改?