【问题标题】:SQLAlchemy migration table already existSQLAlchemy 迁移表已经存在
【发布时间】:2020-03-03 15:41:32
【问题描述】:

我刚开始使用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)

【问题讨论】:

  • 正常的操作顺序是添加/更改模型,然后执行flask db migrate(迁移构建迁移架构所需的python端代码以匹配新模型,然后@ 987654325@将其应用于架构。如果您手动更改架构,则会混淆流程。

标签: python flask sqlalchemy flask-migrate sqlalchemy-migrate


【解决方案1】:

我的解决方案是

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

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 2012-08-07
    • 2019-11-17
    • 2017-07-09
    • 2012-04-11
    • 2019-12-30
    • 2018-04-07
    • 2013-02-04
    • 2015-09-01
    相关资源
    最近更新 更多