标签: django-south

与Django South向后迁移

好的,所以这似乎是一个非常愚蠢的问题,而且我确定我在某处遗漏了某些东西.

你如何在Django上使用South进行向后迁移?

所以我已经调整了我的模型,创建了一个迁移schemamigration,运行迁移migrate,现在我意识到这不是我想要的,我想要它回到以前的方式.

如果没有手动编辑数据库表并删除迁移文件,我应该如何进行迁移?我发现使用South通过谷歌进行向后迁移的参考,但还没有找到一个可靠的代码示例.

有人可以帮忙吗?

migration django django-south

216
推荐指数
2
解决办法
7万
查看次数

Django - 如何使用South重命名模型字段?

我想更改模型中特定字段的名称:

class Foo(models.Model):
    name = models.CharField()
    rel  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

应改为:

class Foo(models.Model):
    full_name     = models.CharField()
    odd_relation  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

使用南方最简单的方法是什么?

python django django-models django-south

208
推荐指数
5
解决办法
4万
查看次数

Django South - 表已经存在

我正试图开始南方.我有一个现有的数据库,我添加了South(syncdb,schemamigration --initial).

然后,我更新models.py了添加字段并运行./manage.py schemamigration myapp --auto.它似乎找到了该领域并说我可以应用它./manage.py migrate myapp.但是,这样做会给出错误:

django.db.utils.DatabaseError: table "myapp_tablename" already exists
Run Code Online (Sandbox Code Playgroud)

tablename是第一个列出的表models.py.

我正在运行Django 1.2,South 0.7

django django-south

188
推荐指数
3
解决办法
6万
查看次数

使用Django South重置迁移历史记录的建议方法是什么?

我使用South(0.7)和Django(1.1.2)积累了大量的迁移,这些迁移在我的单元测试中开始消耗相当多的时间.我想重置基线并开始一系列新的迁移.我查看了南方文档,完成了通常的Google/Stackoverflow搜索(例如"django south(重置或删除或删除)迁移历史记录")并且没有找到任何明显的内容.

我已经考虑过的一种方法是通过"删除"南方或"清除"历史记录(例如清除数据库表,从迁移控制器中删除迁移文件)来"重新开始",然后重新运行,

./manage.py schemamigration southtut --initial

所以,如果有人之前已经这样做并有一些提示/建议,他们将不胜感激.

django django-south

154
推荐指数
4
解决办法
6万
查看次数

使用Django/South重命名模型的最简单方法?

我一直在寻找南方网站,谷歌和SO的答案,但找不到一个简单的方法来做到这一点.

我想用South重命名一个Django模型.说你有以下内容:

class Foo(models.Model):
    name = models.CharField()

class FooTwo(models.Model):
    name = models.CharField()
    foo = models.ForeignKey(Foo)
Run Code Online (Sandbox Code Playgroud)

并且你想将Foo转换为Bar,即

class Bar(models.Model):
    name = models.CharField()

class FooTwo(models.Model):
    name = models.CharField()
    foo = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

为了简单起见,我只是尝试将名称从更改FooBar,但暂时忽略该foo成员FooTwo.

使用南方最简单的方法是什么?

  1. 我可能会进行数据迁移,但这似乎很复杂.
  2. 编写自定义迁移,例如db.rename_table('city_citystate', 'geo_citystate'),但在这种情况下我不确定如何修复外键.
  3. 你知道一种更简单的方法吗?

python django rename django-models django-south

141
推荐指数
3
解决办法
3万
查看次数

如何将模型从一个django应用程序迁移到一个新的应用程序?

我有一个django应用程序,里面有四个型号.我现在意识到其中一个模型应该在一个单独的应用程序中.我确实安装了南部进行迁移,但我不认为这是它可以自动处理的东西.如何将其中一个模型从旧应用程序迁移到新应用程序?

此外,请记住,我将需要这是一个可重复的过程,以便我可以迁移生产系统等.

migration django django-south

125
推荐指数
3
解决办法
3万
查看次数

为什么我的南迁不起作用?

首先,我创建了我的数据库.

create database mydb;
Run Code Online (Sandbox Code Playgroud)

我在安装的应用程序中添加"南".然后,我转到本教程:http: //south.aeracode.org/docs/tutorial/part1.html

教程告诉我这样做:

$ py manage.py  schemamigration wall --initial
>>> Created 0001_initial.py. You can now apply this migration with: ./manage.py migrate wall
Run Code Online (Sandbox Code Playgroud)

好的,现在我迁移了.

$ py manage.py migrate wall
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误......

django.db.utils.DatabaseError: (1146, "Table 'fable.south_migrationhistory' doesn't exist")
Run Code Online (Sandbox Code Playgroud)

所以我使用谷歌(这永远不会奏效,因此问#2我的870度的问题.),我得到这个页面:http://groups.google.com/group/south-users/browse_thread/thread/d4c83f821dd2ca1c

好的,所以我按照说明进行操作

>> Drop database mydb;
>> Create database mydb;
$ rm -rf ./wall/migrations
$ py manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

但是当我运行syncdb时,Django会创建一堆表.是的,它创建了south_migrationhistory表,但它也创建了我的应用程序表.

Synced:
 > django.contrib.admin
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > south
 > fable.notification
 > …
Run Code Online (Sandbox Code Playgroud)

python migration django django-south

79
推荐指数
3
解决办法
5万
查看次数

在Django中添加新的自定义权限

我在我的Django模型中使用自定义权限,如下所示:

class T21Turma(models.Model):
    class Meta:
        permissions = (("can_view_boletim", "Can view boletim"),
                       ("can_view_mensalidades", "Can view mensalidades"),)
Run Code Online (Sandbox Code Playgroud)

问题是,当我向列表添加权限auth_permission时,当我运行syncdb时,它不会被添加到表中.我究竟做错了什么.如果它有任何区别我在南方使用数据库迁移.

django django-south django-permissions

70
推荐指数
4
解决办法
3万
查看次数

django 1.7 migrate获取错误"表已经存在"

我正在尝试应用迁移,但我收到错误:

django.db.utils.OperationalError:(1050,"表'customers_customer'已经存在")

我通过发出以下命令得到这个:

python manage.py migrate
Run Code Online (Sandbox Code Playgroud)

我的客户表已经存在,那么我该如何让迁移知道这一点,而不是出错,并对我的模型进行修改?

我在本地环境中用本地数据库运行它没有问题.当我将数据库指向生产并在migrate上面运行时,我得到了这个错误.

django django-south django-1.7 django-migrations

59
推荐指数
3
解决办法
7万
查看次数

您可以在南方第一次迁移之前向后迁移吗?

你可以在Django South首次迁移之前将应用程序向后迁移吗?如果没有,是否有计划添加此类功能,可能使用传递给的选项migrate

python django django-south

54
推荐指数
1
解决办法
5851
查看次数