Saleor 38: 部署 - Heroku


配置(Configuration)

$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-nodejs.git
$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-python.git
$ heroku addons:create heroku-postgresql:hobby-dev
$ heroku addons:create heroku-redis:hobby-dev
$ heroku addons:create sendgrid:starter
$ heroku config:set ALLOWED_HOSTS='<your hosts here>'
$ heroku config:set NODE_MODULES_CACHE=false
$ heroku config:set NPM_CONFIG_PRODUCTION=false
$ heroku config:set SECRET_KEY='<your secret key here>'

Note

Heroku 的存储是不稳定的。这意味着应用程序的所有实例都将具有单独的磁盘,并且每次重新启动应用程序时都将丢失对本地磁盘所做的所有更改。最好的方法是使用 Amazon S3 等云存储。有关配置详细信息,请参阅 Storing Files on Amazon S3

部署(Deployment)

$ git push heroku master

准备数据库(Preparing the Database)

$ heroku run python manage.py migrate

更新货币汇率(Updating Currency Exchange Rates)

这需要定期运行。实现此目的的最佳方法是使用 Heroku 的调度程序服务(Heroku’s Scheduler service)。我们将其添加到我们的应用程序中:

$ heroku addons:create scheduler

然后登录到您的 Heroku 帐户,在活动插件列表中找到 Heroku Scheduler 插件,并让它每天运行以下命令:

python manage.py update_exchange_rates --all

启用 Elasticsearch(Enabling Elasticsearch)

默认情况下,Saleor 使用Postgres 作为搜索后端,但如果您想切换到 Elasticsearch,可以使用 Bonsai 插件轻松实现。为此,请运行以下命令:

$ heroku addons:create bonsai:sandbox-6 --version=5.4
$ heroku run python manage.py search_index --create