比如有一个简单的模型
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长度的变化这种迁移?
Alembic prend en charge la détection des changements de longueur de champ, mais ce n'est pas la valeur par défaut et doit être configuré.
Définissez
compare_type
surTrue
pour vérifier les modifications dans les champs de type tels que la longueur du champ, et définissezcompare_server_default
pour vérifier les modifications apportées aux valeurs par défaut des champs définis.Document de référence détaillé
flask-migrate ne détectera pas les modifications de colonne, mais vous pouvez le faire
Ajoutez d'abord une ligne sous Utilisateur, puis migrez, puis apportez des modifications, supprimez les lignes précédemment ajoutées, puis ajoutez quelques lignes supplémentaires. noter que cela peut ne pas fonctionner sous sqlite
python code.py db modifier
Référence
http://alembic.readthedocs.io/en/latest/ops.html