如何在 Heroku 服务器中创建在 sqlalchemy 模式中定义的表?
-
21-12-2019 - |
题
我有一个非常简单的应用程序,使用 Python、SQLAlchemy、PostgreSQL 和 Turbogears 2.3 构建。
该应用程序在我使用 SQLite 的本地计算机上运行。但是,当我将其上传到 Heroku 时,我不知道如何在那里创建 TurboGears2 用于身份验证和验证的 PostgreSQL 表:用户、组、权限等表。
我看到架构是在一个名为的文件中定义的 auth.py
看起来像这样:
....
from sqlalchemy import Table, ForeignKey, Column
from sqlalchemy.types import Unicode, Integer, DateTime
from sqlalchemy.orm import relation, synonym
from example2.model import DeclarativeBase, metadata, DBSession
class User(DeclarativeBase):
__tablename__ = 'tg_user'
user_id = Column(Integer, autoincrement=True, primary_key=True)
user_name = Column(Unicode(16), unique=True, nullable=False)
email_address = Column(Unicode(255), unique=True, nullable=False)
display_name = Column(Unicode(255))
_password = Column('password', Unicode(128))
created = Column(DateTime, default=datetime.now)
def __repr__(self):
return '<User: name=%s, email=%s, display=%s>' % (
repr(self.user_name), repr(self.email_address), repr(self.display_name))
def __unicode__(self):
return self.display_name or self.user_name
...
所以我的问题是如何在 Heroku 服务器中自动创建这些表?我必须执行什么命令或脚本?
编辑:感谢 JPub 的回答,我阅读了文档,了解如何从控制台执行此操作:
$ gearbox setup-app -c production.ini
要在 Heroku 中执行此操作,应该是:
$ heroku run 'gearbox setup-app -c production.ini'
解决方案
我对涡轮齿轮没有任何经验,但阅读文档后您有两种选择。
直接创建:
http://turbogears.readthedocs.org/en/latest/turbogears/gearbox.html#setup-app
编写您自己的迁移:
http://turbogears.readthedocs.org/en/latest/turbogears/migrations.html
不隶属于 StackOverflow