Django 迁移数据库列宽
Django migrate db column width
在 Django 1.10 中,username max length was increased from 30 to 150 characters. 我有一个 Django 1.9 应用程序,我想迁移以利用它。
我已将 Django 安装升级到 1.10。当我 python manage.py makemigrations
时,我没有检测到任何变化。
如果我尝试将现有用户名编辑为超过 30 个字符,我会在日志中得到 django.db.utils.DataError: value too long for type character varying(30)
。
我宁愿使用 Django 的内置迁移来处理这个问题,而无需在 postgres 中进行修改。如何触发迁移以修改数据库列宽?
我想在模型中添加一个一次性字段,迁移并再次删除它,但这似乎很老套,而且似乎应该有比这更好的处理方法。
Django 文档对此似乎保持沉默。
我最终向模型添加了一个一次性字段,运行 makemigrations
,删除了该字段,再次 运行 makemigrations
,然后 运行 migrate
。我收到这条消息:
Running migrations:
Applying foo.0033_userprofile_throwaway... OK
Applying foo.0034_remove_userprofile_throwaway... OK
Applying auth.0008_alter_user_username_max_length... OK
所以也许有更好的方法来做到这一点。不管怎样,迁移后我修改了一个用户名超过30个字符,它执行得很好。
在 Django 1.10 中,username max length was increased from 30 to 150 characters. 我有一个 Django 1.9 应用程序,我想迁移以利用它。
我已将 Django 安装升级到 1.10。当我 python manage.py makemigrations
时,我没有检测到任何变化。
如果我尝试将现有用户名编辑为超过 30 个字符,我会在日志中得到 django.db.utils.DataError: value too long for type character varying(30)
。
我宁愿使用 Django 的内置迁移来处理这个问题,而无需在 postgres 中进行修改。如何触发迁移以修改数据库列宽?
我想在模型中添加一个一次性字段,迁移并再次删除它,但这似乎很老套,而且似乎应该有比这更好的处理方法。
Django 文档对此似乎保持沉默。
我最终向模型添加了一个一次性字段,运行 makemigrations
,删除了该字段,再次 运行 makemigrations
,然后 运行 migrate
。我收到这条消息:
Running migrations:
Applying foo.0033_userprofile_throwaway... OK
Applying foo.0034_remove_userprofile_throwaway... OK
Applying auth.0008_alter_user_username_max_length... OK
所以也许有更好的方法来做到这一点。不管怎样,迁移后我修改了一个用户名超过30个字符,它执行得很好。