SQLAlchemy Base.metadata.create_all(bind=engine) не создает таблицуMySql

Форум по Mysql
Ответить
Anonymous
 SQLAlchemy Base.metadata.create_all(bind=engine) не создает таблицу

Сообщение Anonymous »

Итак, я пытаюсь создать 2 таблицы, используя MySQL и SQLAlchemy, но продолжает выдавать ошибку: sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, «Таблица 'chatbot_db.sessions' не существует»)
Я также нашел ответы других в stackoverflow, но все еще не могу решить свои проблемы.
models.py:

Код: Выделить всё

from sqlalchemy import Column, Integer, String, Text, ForeignKey, DateTime, func
from sqlalchemy.orm import relationship, declarative_base

Base = declarative_base()

class Session(Base):
__tablename__ = "sessions"
id = Column( Integer, primary_key=True)
title = Column(String())
transcript = Column(Text)
summary = Column(Text)
created_at = Column(DateTime, default=func.now())
questions = relationship("Question", back_populates="session")

class Question(Base):
__tablename__ = "questions"
id = Column( Integer, primary_key=True)
session_id = Column( Integer, ForeignKey("sessions.id"))
prompt = Column(Text)
qtype = Column(String())
created_at = Column(DateTime, default=func.now())
session = relationship("Session", back_populates="questions")
database.py:

Код: Выделить всё

import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from dotenv import load_dotenv

load_dotenv()

MYSQL_HOST = os.getenv("MYSQL_HOST", "localhost")
MYSQL_PORT = int(os.getenv("MYSQL_PORT", 3306))
MYSQL_USER = os.getenv("MYSQL_USER", "root")
MYSQL_PASSWORD = os.getenv("MYSQL_PASSWORD", "1111")
MYSQL_DB = os.getenv("MYSQL_DB", "chatbot_db")

DB_URL = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}"

engine = create_engine(DB_URL, echo=True)
SessionLocal = sessionmaker(bind=engine)
Base = declarative_base()
main.py:

Код: Выделить всё

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from .routes import generate

app = FastAPI(title="Short Question Backend")

origins = ["http://localhost:3000"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
from .database import Base, engine
from .models import Session, Question
Base.metadata.create_all(bind=engine)

app.include_router(generate.router, prefix="/api", tags=["AI"])
Будем очень признательны за любую помощь, спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... eate-table
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»