찾다

 >  Q&A  >  본문

python - 使用flask-migrate进行数据库迁移时,如何更改db.String()的长度?

比如有一个简单的模型

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(32), index=True)

一开始,username的长度限制在32,现在将其增大,比如说变为128,flask-migrate似乎不会检测到这个String变长的变化。

我使用了命令自动生成迁移脚本

python code.py db migrate -m "some comment"
python code.py db upgrade

之后,发现username的列的长度依旧被限制在32.

如何进行String长度的变化这种迁移?

迷茫迷茫2804일 전960

모든 응답(2)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-17 17:55:56

    allembic은 필드 길이 변경 감지를 지원하지만 기본값이 아니므로 구성해야 합니다.

    필드 길이 등 유형 필드의 변경 사항을 확인하려면 compare_typeTrue로 설정하고, 설정된 필드의 기본값 변경 사항을 확인하려면 compare_server_default을 설정하세요.

    상세 참고문서

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 17:55:56

    flask- migration은 열 수정 사항을 감지하지 못하지만 이를 수행할 수 있습니다.
    먼저 사용자 아래에 행을 추가한 다음 마이그레이션한 다음 수정하고 이전에 추가한 행을 삭제한 다음 몇 개의 행을 더 추가해야 합니다. sqlite에서는 작동하지 않을 수 있습니다

    python code.py db 편집

    으아악

    참고
    http://alembic.readthedocs.io/en/latest/ops.html

    회신하다
    0
  • 취소회신하다