У меня есть автомат для работы с существующей базой данных в моем проекте приложения. Когда я запускаю его на своей p c с помощью команды flask run, он работает нормально и сохраняет данные в базе данных. Теперь я пытаюсь разместить свое приложение на сервере Debian. Когда я запускаю приложение с gunicorn, оно возвращает мне эту ошибку:
sqlalchemy.exc.ArgumentError: Mapper mapped class Applications->applications could not assemble any primary key columns for mapped table 'applications'.
Это мои models.py:
from flask_login import UserMixin
from sqlalchemy import Column, Date, Integer, String, create_engine
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext.automap import automap_base
Base = automap_base()
class User(UserMixin, Base, db.Model):
__tablename__ = "accounts"
def __repr__(self):
return "User {}".format(self.acc_username)
def get_id(self):
return (self.acc_id)
class Char(Base, db.Model):
__tablename__ = "characters"
def __repr__(self):
return self.char_name.replace('_',' ')
class Applications(Base, db.Model):
__tablename__="applications"
def __repr__(self):
return "Application ".format(self.id)
Base.prepare(db.engine, reflect=True)
@login.user_loader
def load_user(id):
return User.query.get(int(id))
Я уже пытался указать столбец первичного ключа в классах, но после этого он не находит другие параметры, поэтому он как бы хотел, чтобы я записал их один за другим, как если бы автомат существующая база данных не работала
Это объявление БД:
db = SQLAlchemy(app)
Конфигурация базы данных:
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'app.db')
URL базы данных:
DATABASE_URL=mysql+pymysql://root:xxxx@localhost:3306/xxxx