Колба — Таблица (представление) уже существует (postgresql)

#postgresql #flask #view #flask-sqlalchemy

Вопрос:

  • Версия колбы : 2.0.1
  • Postgresql: 13.3

Вид:

 class MarketView(db.Model):
    __table__ = create_view(
        name="market_view",
        selectable=select(
            [
                Tokens.id,
                Tokens.symbol,
                Tokens.name,
                Tokens.tags,
                Tokens.max_supply,
                Tokens.circulating_supply,
                Tokens.total_supply,
                Tokens.ecosystem,
                Tokens.consensus,
                Tokens.category,
                Tokens.portfolio,
                Market.usd,
                Market.btc,
                Market.cmc_rank,
                Market.trust_score,
                Indicator.rsi,
                Indicator.stochastic,
                Indicator.bollinger,
                Indicator.cci,
                Indicator.cfi,
                Indicator.ema,
                Indicator.evm,
                Indicator.macd,
                Indicator.roc,
            ],
            from_obj=(
                Tokens.__table__.join(
                    Market, Tokens.id == Market.token_id
                ).join(Indicator, Tokens.id == Indicator.token_id)
            ),
        ),
        metadata=db.metadata,
    )
 

В этом

 def configure_database(app):
    @app.before_first_request
    def initialize_database():
        try:
            db.create_all()
        except ProgrammingError:
            pass

    @app.teardown_request
    def shutdown_session(exception=None):
        db.session.remove()
 

Я не знаю, как это исправить. Чтобы решить это (уродливый способ) Я использовал ошибку программирования исключений «кроме ошибки программирования: пройти».

Есть какая-нибудь помощь в разрешении этого дела ?

Спасибо!

Комментарии:

1. Есть ли такое create_view_if_not_exists() ? Это был бы способ исправить это в SQL.

2. О … Спасибо! Я воспользуюсь этим!