Quando sto provando a creare una migrazione dello schema del database, ricevo uno strano errore. Potete per favore aiutarmi a capire cosa c'è che non va? Grazie!Impossibile assemblare alcuna colonna chiave primaria per la tabella mappata
sto ottenendo questo:
$ python app.py db upgrade
[skipped]
sqlalchemy.exc.ArgumentError: Mapper Mapper|EssayStateAssociations|essay_associations could not assemble any primary key columns for mapped table 'essay_associations'
mio modello:
class EssayStateAssociations(db.Model):
__tablename__ = 'essay_associations'
ALLOWED_APP_ESSAY_STATES = ["selected", "not_selected", "pending"]
application_essay_id = db.Column(
db.Integer,
db.ForeignKey("application_essay.id"),
primary_key=True),
theme_essay_id = db.Column(
db.Integer,
db.ForeignKey("theme_essay.id"),
primary_key=True),
state = db.Column(db.String, default="pending")
@validates('state')
def validate_app_essay_states(self, key, state):
assert state in self.ALLOWED_APP_ESSAY_STATES
return state
Versioni:
Flask==0.10.1
Flask-Migrate==1.2.0
Flask-SQLAlchemy==1.0
SQLAlchemy==0.9.4
io vi fornirò una risposta adeguata quando ho tempo, ma per ora' noteremo che il tuo errore reale era la virgola finale dopo la definizione di 'application_essay_id'. Hai trasformato la proprietà in una * tupla * contenente una colonna, invece di una colonna. Mi aspetto che si tratti di un errore comune durante la copia della colonna definizioni da un 'op.create_table (' in un modello (ad esempio per passare da migrazioni manuali a autogenerarle da una base dichiarativa) - almeno, questo è il modo in cui * I * si è fottuto allo stesso modo. –