I've been using Flask-Migrate (Alembic) for updating my database. I updated my models.py
file however I made an error. I ran a migration and went to upgrade the database, however I got this error:
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1215, 'Cannot add foreign key constraint') [SQL: u'\nCREATE TABLE topics (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\t`subjectID` INTEGER, \n\ttopic VARCHAR(150) NOT NULL, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(`subjectID`) REFERENCES subjects (id)\n)\n\n']
What I had done was have db.Text
instead of db.Integer
for a foreign key.
When I try run a new migration I get this:
alembic.util.CommandError: Target database is not up to date.
So now I'm stuck. I cannot upgrade the database nor run a migration. I tried to downgrade to an older database version by using something like this:
python manage.py db downgrade --sql b877018671c:36949b1cca31
But when I run python manage.py db current
I get the newest database version which I am stuck in.
Is there a fix for this? Thanks.