我在部署到Heroku的Django 1.8应用程序上有这个模型。当我跑“makemigrations'我明白了:
Migrations for 'account':
0002_auto_20150412_1337.py:
- Alter field email on emailaddress
Migrations for 'socialaccount':
0002_auto_20150412_1337.py:
- Alter field provider on socialaccount
- Alter field provider on socialapp
但是当我跑步'迁移'我明白了:
Operations to perform:
Synchronize unmigrated apps: messages, allauth, staticfiles, facebook
Apply all migrations: accounts, sites, auth, socialaccount, account, admin, contenttypes, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
我在为1.6构建类似的应用程序之前遇到过这种情况,然后我通过伪造第一次迁移来解决它。这次似乎不会有效。
from django.db import models
from django.contrib.auth.models import User
from allauth.account.signals import user_signed_up
from django.dispatch import receiver
from appname import settings
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='profile')
age = models.IntegerField(null = True)
location = models.CharField(max_length = 50, null = True, default ="")
display_name = models.CharField(max_length = 50, null = True, default ="")
updated_profile = models.BooleanField(default = False)
rating_access = models.BooleanField(default = False)
rating = models.IntegerField(default = 0)
seen_introduction = models.BooleanField(default = False)
def __unicode__(self):
return "%s profile. Age: %s, Location: %s" % (self.user.username, self.age, self.location)
@receiver(user_signed_up)
def new_user_signup(sender, **kwargs):
p = UserProfile(user = kwargs['user'])
p.save()