Я использую колбу-sqlalchemy в своем приложении и создал модели ниже.Я создаю связь «многие ко многим» для таблицы «Пользователи» и «Подписка» и пытаюсь создать вспомогательную таблицу как User_Subscription.После создания этой модели, когда я запускаю db.create_all () в командной строке, она создает только 3 таблицы в базе данных (таблицы с db.Model), но не создает вспомогательную таблицу (User_Subscription) вообще.Это также не дает никакой ошибки.
Может кто-нибудь, пожалуйста, посоветуйте, что здесь происходит не так?
Я уже много искал в google и stackoverflow, но не могу найти ответ, когда кто-нибудь сталкивался с этой проблемой, когда вспомогательная таблица (через db.table ()) не создается.У кого-то была одна проблема, в которой у них была похожая проблема, но он столкнулся с ней так, как он хотел, чтобы справиться с несколькими базами данных.Я делаю в той же базе данных.
class Subscription(db.Model):
__tablename__ = "subscription"
id = db.Column(db.Integer, primary_key=True)
subscription_name = db.Column(db.String(100), unique=True, nullable=False)
User_Subscription = db.table('user_subscription',
db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
db.Column('subscription_id', db.Integer, db.ForeignKey('subscription.id')),
db.Column('subscription_status', db.String(20), nullable=False, default='Active'))
class Users(db.Model, UserMixin):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(50), unique=False, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
date_created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
date_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
user_status_id = db.Column(db.String(2), db.ForeignKey('user_status.id'))
subscriptions = db.relationship('Subscription', secondary=User_Subscription, backref= db.backref('subscriptions', lazy=True))
def __repr__(self):
return f"Users('{self.firstname}', '{self.email}')"
class User_Status(db.Model):
__tablename__ = "user_status"
id = db.Column(db.String(2), primary_key=True)
status_desc = db.Column(db.String(20), unique=True, nullable=False)
users_status = db.relationship('Users', backref='usersofstatus')
Ожидаемый результат - 4 таблицы будут созданы в базе данных.
Фактический результат - создаются только 3 таблицы.User_Subscription (вспомогательная таблица для связи многих со многими) не создается.