Как использовать команду php artisan migrate для Laravel4 в Heroku?

Я подаю в суд на план разработчиков 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

php artisan db:seed

Но похоже, что я не могу запустить эту команду в героку для создания таблицы и дампа данных. Подскажите, пожалуйста, как мне создать копию моей локальной базы данных в Heroku.

Спасибо всем


person niran    schedule 27.11.2013    source источник
comment
Когда вы запускаете команду artisan migrate, как выглядит ваш терминал? Что он пишет?   -  person Fractaliste    schedule 27.11.2013
comment
Нечего мигрировать. Но я думаю, что команда работает на локальной машине.   -  person niran    schedule 27.11.2013
comment
Вы создали свои файлы миграции? (ремесленник мигрировать: сделать)   -  person Fractaliste    schedule 27.11.2013
comment
Нет, я не запускал эту команду. Мне нужно запустить это? что оно делает   -  person niran    schedule 27.11.2013
comment
Вам следует прочитать эту главу документации (а также главу построителя схем).   -  person Fractaliste    schedule 27.11.2013
comment
подождите.. Я выполнил эту команду во время установки приложения. по этой причине я вижу таблицу, созданную в LOCAL db. Теперь я хочу запустить эту команду в развернутом приложении. это используемая команда. php artisan migrate:make --table=user CreateUserTable   -  person niran    schedule 27.11.2013
comment
давайте продолжим это обсуждение в чате   -  person niran    schedule 27.11.2013
comment
Я думаю, вам нужно просто запустить команду migrate, если вы уже выполнили миграцию, прежде чем перейти к героку. В рельсах вы запускаете его через «heroku run», например «heroku run rake db: migrate», поэтому я предполагаю, что в Laravel это будет «heroku run php artisan db: migrate». Посмотрите, работает ли это.   -  person isimmons    schedule 15.12.2013


Ответы (6)


Потребовалось немного покопаться, но я смог использовать его, выполнив эту команду:

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

Итак, урок, который я усвоил, заключался в следующем: ставьте перед всеми удаленными ремесленными командами префикс heroku run /app/php/bin/php /app/www/artisan.

person Aaron Gustafson    schedule 30.01.2014
comment
у меня не сработало :) получил эту ошибку. bash: -c: строка 0: синтаксическая ошибка рядом с неожиданным токеном (' bash: -c: line 0: C:/Program Files (x86)/Git/app/php/bin/php C:/Program Files (x86)/Git/app/www/artisan migrate' - person niran; 26.04.2014
comment
Может быть, они изменили его недавно, но мне пришлось сделать это: heroku запустить php /app/artisan migrate - person Hernan Rajchert; 30.04.2014

с новым официальным пакетом сборки php, который вы только что запустили

$ heroku run bash
$ php artisan migrate

или просто

$ heroku run php artisan migrate

И если вы хотите, чтобы миграция происходила каждый раз, когда вы развертываете через git, добавьте "php artisan migrate" в composer.json в разделе "post-update-cmd" файла "scripts".

person dwenaus    schedule 15.05.2014
comment
Вместо этого я предлагаю вам использовать раздел post-install-cmd. post-update-cmd будет вызываться только при запуске composer update. Вы не хотите запускать composer update в производстве. - person Deric Lima; 01.05.2020

Эта строка даст вам доступ ко всем командам ремесленника laravel:

heroku run php artisan
person Roshan Pal    schedule 31.12.2014

Вот полный пример, и он не решит "ничего миграция проблема», которая возникает для Heroku,

heroku run php artisan migrate --path=database/migrations --app application-name

application-name — это имя вашего приложения Heroku.

person Alen MJ    schedule 24.05.2016

Я бы рекомендовал выполнять миграцию как часть процесса сборки. Как и должно быть. Взгляните на https://github.com/lifekent/heroku-buildpack-laravel. . Официальный пакет сборки с простой поддержкой запуска ремесленных команд.

person lifekent    schedule 28.01.2016

Если у вас есть несколько приложений на сервере heroku, вы можете сделать:

heroku run bash -a application-name

это откроет контейнер bash для этого конкретного приложения, и вы можете запустить любую команду внутри этого контейнера. то есть

php artisan migrate:refresh --seed

Очевидно, что сначала вам нужно убедиться, что вы уже вошли в систему heroku cli.

person Muhammad Usman    schedule 28.12.2019