我今天失去了一位用户:(
用户试图注册到我的网站并且他的电子邮件大于75 characters
(Django的auth.User
默认值),我正在进行迁移以解决这个问题,但我想知道,有多大可以我制作专栏而不必担心performance|storage|memory
问题?
我在PostgreSQL
上使用Django 1.3.1
和Heroku
。
以下是我打算运行的South
迁移:
class Migration(SchemaMigration):
def forwards(self, orm):
# Changing User.username, User.email, User.first_name and User.last_name
# to bigger fields
db.alter_column('auth_user', 'username', models.CharField(max_length=255, unique=True))
db.alter_column('auth_user', 'email', models.CharField(max_length=255, blank=True))
db.alter_column('auth_user', 'first_name', models.CharField(max_length=255, blank=True))
db.alter_column('auth_user', 'last_name', models.CharField(max_length=255, blank=True))
def backwards(self, orm):
db.alter_column('auth_user', 'username', models.CharField(max_length=30, unique=True))
db.alter_column('auth_user', 'email', models.CharField(max_length=75, blank=True))
db.alter_column('auth_user', 'first_name', models.CharField(max_length=30, blank=True))
db.alter_column('auth_user', 'last_name', models.CharField(max_length=30, blank=True))
答案 0 :(得分:1)
仅使用迁移会留下与表单验证相关的问题,django.contrib.admin等。
您可以在此处看到非常类似的问题:Can django's auth_user.username be varchar(75)? How could that be done?
还有一些包可用于扩展用户名字段:https://github.com/GoodCloud/django-longer-username(基于该问题)
您可以扩展该程序包中的代码以扩展电子邮件字段(因为它只扩展了用户名字段)