Como criar tabela definida no esquema sqlalchemy no servidor Heroku?
-
21-12-2019 - |
Pergunta
Tenho um aplicativo muito simples que estou construindo com Python, SQLAlchemy, PostgreSQL e Turbogears 2.3.
O aplicativo funciona na minha máquina local, onde utilizo o SQLite.Porém, quando faço o upload para o Heroku, não sei como criar lá as tabelas PostgreSQL que o TurboGears2 usa para autenticação e validação:tabelas como Usuário, Grupos, Permissões.
Vejo que o esquema está definido em um arquivo chamado auth.py
que se parece com isso:
....
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
...
Então minha dúvida é como posso criar essas tabelas automaticamente no servidor Heroku?Qual comando ou script devo executar?
Editar:Graças à resposta do JPub, li na documentação como fazer isso no console:
$ gearbox setup-app -c production.ini
E para fazer isso no Heroku deveria ser:
$ heroku run 'gearbox setup-app -c production.ini'
Solução
Não tenho nenhuma experiência com turbogears, mas lendo a documentação você tem duas opções.
Criação direta:
http://turbogears.readthedocs.org/en/latest/turbogears/gearbox.html#setup-app
Escrevendo suas próprias migrações:
http://turbogears.readthedocs.org/en/latest/turbogears/migrations.html