Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

377
Views
Peewee y postgres en heroku, no se puede crear una tabla

Probé sin la base de datos, mi aplicación funciona muy bien, pero con peewee y postgres, no es capaz de crear ninguna tabla.

mi aplicación

Probé diferentes métodos publicados en línea, pero no funciona, cualquiera que haya usado peewee en heroku, por favor, ayuda.

Mi modelo.py

 if os.environ.get('DATABASE_URL'): DATABASE_URL = os.environ.get('DATABASE_URL') db = urlparse(DATABASE_URL) user = db.username password = db.password path = db.path[1:] host = db.hostname port = db.port database = PostgresqlDatabase(path, user=user, password=password, host=host, port=port) else: database = PostgresqlDatabase('heroku') class BaseModel(Model): class Meta: database = database class User(BaseModel): name = CharField() email = CharField(null=False, unique=True)

Después de mover la tabla de creación de la instrucción if a la tabla de funciones de bienvenida, se crea.

 @app.route('/') def welcome(): call('printenv') a = 'Default' b = 'Default' if os.environ.get('DATABASE_URL'): a = os.environ.get('DATABASE_URL') if os.environ.get('HEROKU'): b = os.environ.get('HEROKU') create_model_tables([Users], fail_silently=True) Users.insert(name='John', email='Doe').execute() return render_template('index.html', a=a, b=b) if __name__ == '__main__': app.run(port=5000, debug=True)
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

"usuario" es una tabla reservada; intente:

 class User(Model): ... class Meta: db_table = 'users'
over 4 years ago · Santiago Trujillo Report

0

from playhouse.db_url import connect import settings local_url = 'postgresql://{}:{}@localhost:5432/{}'.format(settings.DB_USER, settings.DB_PASS, settings.DB_NAME) database = connect(os.environ.get('DATABASE_URL') or local_url) class BaseModel(Model): class Meta: database = database

Úselo de esta manera, es fácil y hay muy pocas posibilidades de equivocarse.

Y debe crear una tabla antes if __name__ == '__main__: , esta declaración, porque en heroku proporciona configuraciones tales que, cualquier cosa debajo de eso no funcionará.

Como el mío uswgi.ini

 [uwsgi] http-socket = :$(PORT) master = true die-on-term = true module = app:app memory-report = true

module = app:app significa ejecutar la aplicación desde app.py no ejecutar app.py

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!