#sqlalchemy #flask-sqlalchemy
Вопрос:
Я пытаюсь перенести свою базу данных, но не могу этого сделать, потому что эта ошибка появляется при попытке переноса
sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'joinedServers.server_id' could not find table 'servers' with which to generate a foreign key to target column 'id'
Вторичные серверы, к которым присоединяется таблица, по какой-то причине не могут найти таблицу серверов, хотя я почти уверен, что правильно настроил таблицу и отношения.
Это моя таблица серверов
from .db import db
from .joinedServer import joinedServers
class Server(db.Model):
__tablename__ = "servers"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
topic = db.Column(db.String(500), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
channels = db.relationship("Channel", cascade="all, delete", passive_deletes=True, back_populates="server")
server_users = db.relationship("User", secondary=joinedServers, back_populates="joined_servers")
Это моя дополнительная таблица
from .db import db
joinedServers = db.Table(
"joinedServers",
db.Column("server_id", db.Integer, db.ForeignKey("servers.id"), primary_key=True),
db.Column("user_id", db.Integer, db.ForeignKey("users.id"), primary_key=True)
)
Это другая таблица, к которой я подключаюсь через вторичную
from .joinedServer import joinedServers
class User(db.Model, UserMixin):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(40), nullable=False, unique=True)
email = db.Column(db.String(255), nullable=False, unique=True)
hashed_password = db.Column(db.String(255), nullable=False)
messages = db.relationship("Message", back_populates="user")
joined_servers = db.relationship("Server", secondary=joinedServers, back_populates="server_users")
Я понятия не имею, почему это происходит, и был бы признателен за некоторые объяснения того, как это исправить.