假设您的计算机上安装了 heroku 腰带,在您的项目中创建 git 存储库(您可能已经拥有)然后创建 Heroku 应用程序:
heroku create --stack cedar <name_of_your_app>
首先将 Postgresql 添加到您的项目中:
heroku addons:add heroku-postgresql
之后检查是否添加成功:
heroku pg:info
这应该返回类似:
HEROKU_POSTGRESQL_WHITE_URL <== Database name
Plan: Dev
Status: available
然后推广数据库,让 heroku 知道您将使用哪一个(您可以在一个项目中拥有多个数据库)。
heroku pg:promote HEROKU_POSTGRESQL_WHITE_URL
此时,如果您想配置数据库连接,您可以从项目的 Heroku 页面或从提升数据库时创建的环境变量 DATABASE_URL 获取所有连接信息。如果您使用后者,您不必自己提供任何信息,我经常使用的功能就是以下几行:
if "DATABASE_URL" in os.environ:
urlparse.uses_netloc.append("postgres")
url = urlparse.urlparse(os.environ.get("DATABASE_URL"))
DATABASE = {
"database" : url.path[1:],
"user" : url.username,
"password": url.password,
"host": url.hostname,
"port": url.port
}
return PostgresqlDatabase(**DATABASE)
这是用于 peewee ORM 的,但您可以将其调整为任何其他 ORM,例如 SQLAlchemy,只需将 DATABASE 中的内容插入到您想要的任何内容中。
就设置应用而言,您需要编写包含应用使用的所有依赖项的 requirements.txt 文件,当您第一次将项目推送到 Heroku 时,这将被自动解析并安装所有库,您还需要 Procfile 文件在您的项目中,这会告诉 Heroku 在哪个阶段运行哪些进程,最重要的部分是 web 部分,例如:
web: gunicorn main:app
将启动 gunicorn 服务器为您的网站提供服务。如果您需要运行任何脚本,例如在数据库中创建表的脚本,只需键入:
heroku run create_tables.py
从您的存储库中。
就最后一个问题而言 - 是的,您可以分多个阶段推送您的代码,您的应用程序将重新启动,并且所有新代码都应该与您的本地计算机上一样工作。希望这会有所帮助。