python - SQLAlchemy 迁移表已存在

标签 python flask sqlalchemy flask-migrate sqlalchemy-migrate

我刚刚开始使用flask-migrate,但遇到了一些问题。 为了让自己熟悉它,我开始了一个使用模拟 MySQL 数据库的新项目。

我按如下方式运行迁移

 export FLASK_APP=run.py
 flask db init
 flask db migrate
 flask db upgrade

它会抛出此错误:

   ...
  File "c:\users\terkea\appdata\local\programs\python\python36\lib\site-packages\MySQLdb\connections.py", line 226, in query
    _mysql.connection.query(self, query)
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1050, "Table 'user' already exists")
[SQL:
CREATE TABLE `User` (
        id INTEGER NOT NULL AUTO_INCREMENT,
        public_id VARCHAR(50),
        name VARCHAR(50),
        password VARCHAR(255),
        PRIMARY KEY (id),
        UNIQUE (name),
        UNIQUE (public_id)
)

]
(Background on this error at: http://sqlalche.me/e/e3q8)

最佳答案

我的案例的解决方案是

  1. 从我的所有模型中删除 __tablename__
  2. 在运行迁移之前删除数据库中的所有表

关于python - SQLAlchemy 迁移表已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742291/

相关文章:

python - Python中的多线程缩略图生成

python - Django 模型和多对多关系——找到最相似的对象

python - 如何用Python中的美丽汤替换html页面中的特定文本行

python - 用于 celery 的原始 PyMySQL 多线程

python - Django Rest Framework如何自定义ListAPIView

javascript - 使用 WTForms FieldList 和 Ajax 从模板附加表单

python - 使用 Pytest 测试 Flask session

python - 为什么每次部署后都会重置数据库?

python + SQLAlchemy : deleting with the Session object

python - 在 contains_eager() 中指定具有继承层次结构的实体的完整路径