Laravel 5.2 从迁移文件创建数据库

7
有没有办法可以通过迁移设置(创建)数据库?我想运行迁移和种子,但首先它应该先创建数据库。有什么建议吗?谢谢。

为了创建数据库,您可能需要比您想要授予Laravel用户更高的权限。最好使用特权帐户从应用程序代码分别创建数据库和用户。 - Henry
2个回答

7
你可以在运行migrate命令之前创建自定义工匠命令并运行它。
在命令中使用原始查询,你可以尝试类似这样的内容:
DB::statement('CREATE DATABASE :db', ['db' => $newDatabase]);

他还需要修改环境参数。 - Hongbin Wang
什么是环境参数? - ans4175
@HongbinWang,没错。ans4175,你还需要创建新的连接来使用已经创建的数据库。 - Alexey Mezenin
@ans4175,我找到了一个相当优雅的示例来完成这个任务。这个示例是针对Laravel 4的,但是它应该也能在Laravel 5上运行。请查看JohnathonKoster在这里发布的帖子:http://laravel.io/forum/09-13-2014-create-new-database-and-tables-on-the-fly - Alexey Mezenin
实际上,我想在 Wercker 运行测试之前创建数据库。 - ans4175
我不知道为什么这个问题会被点赞。显然没有人尝试过,因为PDO不支持绑定数据库、表或列名。:db部分只能用于查询中的值,而不能用于名称。https://dev59.com/8XVC5IYBdhLWcg3wykaj#53210496 - Joel Mellon

0

我猜这个命令在最新版本中不存在。我尝试了一下,它说“你是不是想说...”,但数据库并不是建议的关键字之一。 - tolga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接