比如有一个简单的模型
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 menyokong pengesanan perubahan panjang medan, tetapi ia bukan lalai dan perlu dikonfigurasikan.
Tetapkan
compare_type
kepadaTrue
untuk menyemak perubahan dalam medan jenis seperti panjang medan dan tetapkancompare_server_default
untuk menyemak perubahan kepada nilai lalai medan set.Dokumen rujukan terperinci
Flask-migrate tidak akan mengesan pengubahsuaian lajur, tetapi anda boleh melakukan ini
Mula-mula tambahkan baris di bawah Pengguna, kemudian pindahkan, kemudian buat pengubahsuaian, padamkan baris yang ditambahkan sebelum ini, dan kemudian tambahkan beberapa baris lagi ambil perhatian bahawa ini mungkin tidak berfungsi di bawah sqlite
kod python.py db edit
Rujukan
http://alembic.readthedocs.io/en/latest/ops.html