如何在Heroku上使用Laravel4的php artisan migrate命令?

21

我正在起诉使用Heroku开发计划创建基于PostgreSQL的数据库。数据库是在Heroku中创建的。在运行heroku pg:info命令后,

$ heroku pg:info
=== HEROKU_POSTGRESQL_XXX_URL
Plan:        Hobby-dev
Status:      available
Connections: 1
PG Version:  9.3.1
Created:     2013-11-27 04:00 UTC
Data Size:   6.4 MB
Tables:      0
Rows:        0/10000 (In compliance)
Fork/Follow: Unsupported
Rollback:    Unsupported

结果显示没有表,这是正确的。

在我的本地机器上,使用以下命令创建表,这些命令在Laravel4框架中受支持。

php artisan migrate

php artisan db:seed

但似乎我无法在Heroku上运行此命令以创建表并转储数据。请告诉我如何在Heroku中创建本地数据库的副本。

谢谢大家。


没有需要迁移的内容。但我认为该命令正在本地机器上运行。 - niran
你创建了迁移文件吗?(artisan migrate:make) - Fractaliste
我没有运行那个命令。我需要运行它吗?它是做什么的? - niran
你应该阅读文档中的这一章节(以及Schema builder章节)。 - Fractaliste
等一下..我在应用程序设置期间运行了这个命令。这就是我能在本地数据库中看到创建的表的原因。现在我想在部署的应用程序上运行此命令。这是使用的命令。php artisan migrate:make --table="user" CreateUserTable - niran
显示剩余3条评论
7个回答

64

使用新的官方 PHP Buildpack,您只需运行

$ heroku run bash
$ php artisan migrate

或者只是

$ heroku run php artisan migrate

如果您希望每次通过git部署时都进行迁移,则将"php artisan migrate"添加到"scripts""post-update-cmd"部分中,在composer.json中进行配置即可。


我建议您改用“post-install-cmd”部分。只有在运行composer update命令时才会调用“post-update-cmd”。您不希望在生产环境中运行composer update - Deric Lima

15

我需要进行一些搜索,但最终通过运行以下命令,我成功地使用了它:

heroku run /app/php/bin/php /app/www/artisan migrate

所以我学到的教训是:在所有远程工匠命令前加上 heroku run /app/php/bin/php /app/www/artisan


没有生效:) 我收到了这个错误。bash:-c:第0行:意外的标记符号(' bash:-c:第0行:C:/Program Files (x86)/Git/app/php/bin/php C:/Program Files(x86)/Git/app/www/artisan migrate' - niran
3
也许他们最近做了修改,但我必须这样做:heroku run php /app/artisan migrate - Hernan Rajchert

7
这里有一个完整的例子,可以解决Heroku出现的“无迁移问题”,请参考此链接
heroku run php artisan migrate --path=database/migrations --app application-name

application-name 是你的 Heroku 应用程序名称


6

这行代码将为您提供访问所有Laravel Artisan命令的权限:

heroku run php artisan

3

如果您在Heroku服务器上有多个应用程序,可以执行以下操作:

heroku run bash -a application-name

这将为该特定应用程序打开一个 bash 容器,您可以在此容器内运行任何命令。例如:

php artisan migrate:refresh --seed

显然,您首先需要确保已经登录到 Heroku 命令行界面。


这个答案非常有意义。它允许我很好地运行Linux命令并执行Artisan。 - Olotin Temitope

1

0

heroku run php artisan migrate -a {你的应用名称}


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