我创建了一个新模型:
class RssFeed(models.Model):
url = mdels.CharField(max_length=300)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
File "manage.py", line 13, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/site-packages/South-0.7.2-py2.7.egg/south/management/commands/schemamigration.py", line 134, in handle
for action_name, params in change_source.get_changes():
File "/usr/local/lib/python2.7/site-packages/South-0.7.2-py2.7.egg/south/creator/changes.py", line 397, in get_changes
real_fields, meta, m2m_fields = self.split_model_def(model, model_defs[model_key(model)])
File "/usr/local/lib/python2.7/site-packages/South-0.7.2-py2.7.egg/south/creator/freezer.py", …Run Code Online (Sandbox Code Playgroud) 当我执行syncdb时,我每次都会收到以下错误:
Not synced (use migrations): - deals - analytics (use ./manage.py migrate to migrate these)
当我运行sudo python manage.py migrate时.我得到以下内容
Running migrations for deals: - Nothing to migrate. - Loading initial data for deals. No fixtures found. Running migrations for analytics: - Nothing to migrate. - Loading initial data for analytics. No fixtures found.
我非常感谢你的帮助
我有一个django应用程序,直到现在我使用sqLite作为数据库后端.现在,当它非常接近生产时,我想把它全部移到mySQL上,它将被用在盒子上.
我将我的设置重新配置为mysql数据库并运行
manage.py syncdb --migrate
Run Code Online (Sandbox Code Playgroud)
它开始创建表,但是在第一次(40次)迁移中出现了一个旧的错误(无法插入没有密钥长度的blob以及所有这些).
我首先想到手动修复迁移文件,但很快意识到手动工作太多了.
所以我认为好的我将运行manage.py migrate core 0040(最后一次迁移并且会做到这一点)但它仍然会尝试运行初始的:
File "D:\~Sasha\Portman\core\migrations\0001_initial.py", line 23, in forwards
('name', self.gf('django.db.models.fields.TextField')(unique=True)),
... error message
Run Code Online (Sandbox Code Playgroud)
有没有办法以某种方式迁移我的模型而无需手动修复初始迁移文件和所有其他魔法?
我想重置我的Django项目的数据库,所以我做了以下步骤:
python manage.py syncdbpython manage.py migrate users --fake在我创建一个新帐户并登录后,我收到以下错误消息:
no such table: users_userprofile
Run Code Online (Sandbox Code Playgroud)
这是我的用户model.py看起来像:
class UserProfile(models.Model):
user = models.OneToOneField(User)
joined_goals = models.ManyToManyField(Goal, related_name="joined_goals")
followingGoals = models.ManyToManyField(Goal, related_name="following_goals")
def __unicode__(self):
return self.user.username
def get_goals(self):
try:
goals = Goal.objects.filter(user=self.user)
return goals
except Goal.DoesNotExist:
return []
def create_user_profile(sender, instance, created, **kwargs):
if created:
userProfile = UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)
因此,有一个UserProfile类,但South似乎没有使表保存用户配置文件.当我这样做时python manage.py schemamigration users --auto,它说似乎没有任何改变.如何创建userprofiles表?
场景:我的Django应用程序中有一个应用程序,我从未将其置于南方管理之下.很久以前我运行了一个syncdb,这个应用程序的模型从来没有改变过.在整个过程中,我显然已将数据添加到这些表中.
现在,我希望将此应用程序置于南方管理之下,但是一旦表格已经存在,我就可以创建迁移文件,但很自然地,我无法执行它们.我收到现有表的数据库错误:
django.db.utils.DatabaseError: (1050, "Table 'ooyala_ooyalaitem' already exists")
这对我来说非常明显.我想知道的是,是否有一种智能方法来运行migrate命令来使用当前表.我不想转储数据,手动删除表,运行迁移和重新填充内容,也不想为此创建数据迁移.
有什么想法吗?它甚至可能吗?
谢谢你的时间.
我有一个CharField模型,我想要增加max_length属性.南方没有注意到这种变化,说没有什么可以迁移的.如何让它迁移呢?
我刚刚将models.py的位置更改为另一个应用程序的目录.现在,当使用南方进行迁移时,它说:
D:\logos-education-system>manage.py schemamigration core --auto
You cannot use automatic detection, since the previous migration does not have t
his whole app frozen.
Either make migrations using '--freeze core' or set 'SOUTH_AUTO_FREEZE_APP = Tru
e' in your settings.py.
D:\logos-education-system>
Run Code Online (Sandbox Code Playgroud)
不知何故,South无法将models.py(在新文件夹中)与数据库中已有的数据相关联并从那里继续.
所以,我的问题是:我如何让南方忘记models.py所在的旧文件夹并使用新文件夹,以至于南方认为总是在那里?
提前致谢.
我想在现有表中添加一个新列,但我想根据已有的数据给它一个默认值:
例如,每条记录都有一个start_date.现在我想添加一个open_until列,我想用start_date每个现有记录的值填充它.(即将到来的记录将能够选择不同的价值)
有友好的方式来做到这一点吗?
我有一个旧的git分支,它有一个从未合并到我们的主分支的迁移.自从我进行了迁移以来,已经进行了大约14次迁移.
我已经将我的旧分支重新定位到我们当前的分支并进行了两次迁移:
我试过跑python manage.py migrate --merge- 这只是返回以下文字:
usage: manage.py migrate [-h] [--version] [-v {0,1,2,3}] [--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback] [--no-color]
[--noinput] [--no-initial-data] [--database DATABASE]
[--fake] [--fake-initial] [--list]
[app_label] [migration_name]
manage.py migrate: error: unrecognized arguments: --merge
Run Code Online (Sandbox Code Playgroud)
我从以下堆栈问题中找到了这个命令:
所有我正在尝试todo合并两个0044迁移,所以当我推向生产它不会错误.
django-south ×10
django ×9
python ×4
migration ×2
git ×1
merge ×1
mysql ×1
relational ×1
sql ×1