python - 使用flask-migrate进行数据库迁移时,如何更改db.String()的长度?
迷茫
迷茫 2017-04-17 17:53:56
0
2
957

比如有一个简单的模型

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长度的变化这种迁移?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(2)
黄舟

Alembic はフィールド長の変更の検出をサポートしていますが、これはデフォルトではないため、設定する必要があります。

フィールド長などの型フィールドの変更をチェックするにはcompare_typeTrueに設定し、設定されたフィールドのデフォルト値の変更をチェックするにはcompare_server_defaultを設定します。

詳細な参考資料

いいねを押す +0
刘奇

flask-merge は列の変更を検出しませんが、これを行うことができます。
まず User の下に行を追加し、次に変更を加え、以前に追加した行を削除してから、さらにいくつかの行を追加する必要があります。これは sqlite

では機能しない可能性があることに注意してください。

python code.py db edit

リーリー

リファレンス
http://alembic.readthedocs.io/en/latest/ops.html

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート