背景
比如我们之前有一个api_keys的表,现在需要新增一个字段exchange_id,不要再去修改已经执行过的迁移文件,应该在此基础上新增一个文件。
处理
python craft migration update_api_keys_table --table api_keys
"""UpdateApiKeysTable Migration."""
from masoniteorm.migrations import Migration
class UpdateApiKeysTable(Migration):
def up(self):
"""
Run the migrations.
"""
with self.schema.table('api_keys') as table:
table.integer('exchange_id').unsigned()
def down(self):
"""
Revert the migrations.
"""
self.schema.drop("api_keys")
改动
我们表的字段定义忘了添加注释,还有部分字段需要指定默认值,也就是不是加字段而是要修改,处理方案如下
python craft migration update_api_keys_table --table api_keys
写入内容
"""UpdateApiKeysTable Migration."""
from masoniteorm.migrations import Migration
class UpdateApiKeysTable(Migration):
def up(self):
"""
Run the migrations.
"""
with self.schema.table("api_keys") as table:
table.string('api_key').comment("api key").change()
table.string('api_secret').comment('api私钥').change()
table.integer('exchange_id').unsigned().comment('交易所id').default(1).change()
table.integer('uid').comment('用户id').change()
def down(self):
"""
Revert the migrations.
"""
pass
执行迁移
python craft migrate
最后关于migrate这块
- 定义的时候尽量思考全面
- 生成了迁移文件,就尽量不要移除
- 后续有改动继续定义新的迁移文件修改,不要删除后重来
Top comments (0)