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

比如有一个简单的模型

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

迷茫
迷茫

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

membalas semua(2)
黄舟

Alembic menyokong pengesanan perubahan panjang medan, tetapi ia bukan lalai dan perlu dikonfigurasikan.

Tetapkan compare_type kepada True untuk menyemak perubahan dalam medan jenis seperti panjang medan dan tetapkan compare_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

def upgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.alter_column('users', 'username', existing_type=sa.String(32), type_=sa.String(128))
    ### end Alembic commands ###


def downgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.alter_column('users', 'username', existing_type=sa.String(128), type_=sa.String(32))
    ### end Alembic commands ###

Rujukan
http://alembic.readthedocs.io/en/latest/ops.html

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan