SQLAlchemy 迁移 table 已经存在

SQLAlchemy migration table already exist

我刚开始使用 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. 在 运行 迁移之前从数据库中删除所有表