标签: django-south

如何添加新模型并使用South 0.7.2生成迁移?

我创建了一个新模型:

class RssFeed(models.Model):  
  url = mdels.CharField(max_length=300)  
Run Code Online (Sandbox Code Playgroud)

$ python manage.py schemamigration论坛--add-model RssFeed

  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)

django-models django-south

3
推荐指数
1
解决办法
1960
查看次数

当涉及迁移时,如何使用django执行syncdb

当我执行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 django-models django-syncdb django-south

3
推荐指数
1
解决办法
2135
查看次数

南 - 将django应用程序从sqlite迁移到mysql

我有一个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)

有没有办法以某种方式迁移我的模型而无需手动修复初始迁移文件和所有其他魔法?

mysql django database-migration django-south

3
推荐指数
1
解决办法
2681
查看次数

Django South没有为user_profiles创建表

我想重置我的Django项目的数据库,所以我做了以下步骤:

  1. 删除了我的SQLite数据库
  2. 难道 python manage.py syncdb
  3. 难道 python 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表?

python django django-south

3
推荐指数
1
解决办法
1286
查看次数

Django South - 为已填充表格的应用程序创建初始迁移

场景:我的Django应用程序中有一个应用程序,我从未将其置于南方管理之下.很久以前我运行了一个syncdb,这个应用程序的模型从来没有改变过.在整个过程中,我显然已将数据添加到这些表中.

现在,我希望将此应用程序置于南方管理之下,但是一旦表格已经存在,我就可以创建迁移文件,但很自然地,我无法执行它们.我收到现有表的数据库错误:

django.db.utils.DatabaseError: (1050, "Table 'ooyala_ooyalaitem' already exists")

这对我来说非常明显.我想知道的是,是否有一种智能方法来运行migrate命令来使用当前表.我不想转储数据,手动删除表,运行迁移和重新填充内容,也不想为此创建数据迁移.

有什么想法吗?它甚至可能吗?

谢谢你的时间.

python migration django django-south

3
推荐指数
1
解决办法
3976
查看次数

如何让Django South迁移更改了max_length的字段?

我有一个CharField模型,我想要增加max_length属性.南方没有注意到这种变化,说没有什么可以迁移的.如何让它迁移呢?

python django django-south

3
推荐指数
1
解决办法
1095
查看次数

使用south更改models.py的位置

我刚刚将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所在的旧文件夹并使用新文件夹,以至于南方认为总是在那里?

提前致谢.

django django-south

3
推荐指数
1
解决办法
746
查看次数

Django migrations/South:新列从同一记录中获取另一个值的默认值

我想在现有表中添加一个新列,但我想根据已有的数据给它一个默认值:

例如,每条记录都有一个start_date.现在我想添加一个open_until列,我想用start_date每个现有记录的值填充它.(即将到来的记录将能够选择不同的价值)

有友好的方式来做到这一点吗?

sql migration django relational django-south

3
推荐指数
1
解决办法
2670
查看次数

Django合并两个具有相同ID的迁移?

我有一个旧的git分支,它有一个从未合并到我们的主分支的迁移.自从我进行了迁移以来,已经进行了大约14次迁移.

我已经将我的旧分支重新定位到我们当前的分支并进行了两次迁移:

  1. 0044_auto_20160810_1128
  2. 0044_auto_20160823_1613

我试过跑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)

我从以下堆栈问题中找到了这个命令:

Django南部移民冲突在团队中工作

所有我正在尝试todo合并两个0044迁移,所以当我推向生产它不会错误.

python git django merge django-south

3
推荐指数
1
解决办法
1525
查看次数

Django 1.10是否仍然需要South来管理迁移?

我正在按照正确方式启动Django项目的在线说明.

这些说明基于早期版本的Django.从我(简称有限)的Django知识.Django的最新版本(在提出这个问题时为1.10)已经通过manage.py脚本处理似乎很好的迁移.

我的问题是:我是否仍需要安装South来管理我的迁移,或者我可以简单地跳过那部分指令,并manage.py用来处理我的数据库架构更改?

django database-migration django-south

3
推荐指数
1
解决办法
587
查看次数