fre*_*ley 7 django django-south
下面是什么好像很好的建议,我从Django的迁移内置auth.User到我自己app.User做一个重命名迁移auth_user到app_user.到目前为止一切顺利,这很好.当我设置一台新机器时会出现问题.
在我的settings.py我AUTH_USER_MODEL = 'app.User'.因此,当我运行时syncdb,auth_user不会创建表,所以当我migrate,该迁移失败时.
我发现的唯一方法是修改AUTH_USER_MODEL指向auth.User,运行syncdb和迁移,直到重命名迁移,然后更改AUTH_USER_MODEL回来,然后运行其余的迁移.
有没有解决这个问题的方法?
根据此处提出的其他答案的想法,这是一个有效的解决方案:
def forwards(self, orm):
if 'auth_user' not in db.execute('SHOW TABLES'):
db.create_table('app_user', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('password', self.gf('django.db.models.fields.CharField')(max_length=128)),
('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)),
('username', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)),
('first_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)),
('last_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)),
('email', self.gf('django.db.models.fields.EmailField')(max_length=75, blank=True)),
('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)),
('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)),
('date_joined', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
))
db.send_create_signal(app', ['User'])
else:
db.rename_table('auth_user', 'app_user')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |