我正在使用laravel(Laravel 4)设置一个新的应用程序,并且在通过迁移设置数据库时遇到一些问题.
我制作了一个迁移文件:
artisan migrate:make --table="jobs" --create jobs
Run Code Online (Sandbox Code Playgroud)
它按照预期在数据库/迁移中创建了一个文件,我为此做了一些修改,然后使用它来启动它
artisan migrate --env=local
Run Code Online (Sandbox Code Playgroud)
但是我收到了回复 "Nothing to migrate"
如果我尝试不运行--env=local,它使用我们不想使用的config文件夹(不在本地/ staging/production文件夹中)中的database.php,因为它不是特定于环境的.
我的第一个想法是好的,也许我需要在migrate:make调用上放置env标志,所以我尝试了,但是得到一个错误,说它无法创建迁移文件.然后我认为无论如何都要进行基于env的迁移是没有意义的...它们应该是通用的,并且只是基于每个env运行,所以最后,所有环境都使用相同的迁移脚本.
所以我现在有点卡在这里去哪里
Jas*_*wis 30
您需要在migrate命令之前指定环境.
artisan --env=local migrate
Run Code Online (Sandbox Code Playgroud)
运行artisan help显示命令要遵循的格式.
artisan help
Usage:
[options] command [arguments]
Run Code Online (Sandbox Code Playgroud)
我找到了一个migrate针对不同数据库运行的解决方案。基本上,该命令artisan migrate --env=local不起作用。但我们可以在 中定义一个新的连接字符串config\database.php。例如:
<?php
'mysql_testing' => [
'driver' => 'mysql',
'host' => env('DB_TESTING_HOST'),
'database' => env('DB_TESTING_DATABASE'),
'username' => env('DB_TESTING_USERNAME'),
'password' => env('DB_TESTING_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'prefix_',
],
Run Code Online (Sandbox Code Playgroud)
并指定--database我们运行的时间artisan migrate:
php artisan migrate --database=mysql_testing
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
13957 次 |
| 最近记录: |