草庐IT

django - 使用 South、Django 和 Git 时处理数据库迁移的正确方法是什么?

背景:-我正在使用Django1.3。我们使用South作为数据库迁移和GitSCM的模块。问题:-处理形成的迁移文件夹的正确方法是什么?主要问题是我在开发机器中更改了数据库架构,当我将其上传到生产服务器时,我必须迁移现有架构。在这样做的同时,迁移文件总是存在一些问题。我应该只将migrations文件夹添加到gitignore吗?或者有更好的方法吗? 最佳答案 您应该将migrations文件夹添加到您的版本控制系统,并使用相同的文件进行生产和开发。如果您不是从一开始就引入迁移并且您已经有现有的表,那么您可能会在生产系统上遇到一些

python - 为什么 Django South 1.0 使用 iteritems()?

我刚刚安装了South1.0,当我即将进行第一次迁移时,我收到了以下错误消息:.../lib/python3.4/site-packages/south/migration/migrators.py",line186,in_run_migrationforname,dbinsouth.db.dbs.iteritems():AttributeError:'dict'objecthasnoattribute'iteritems'我已经通过用items()替换两次出现的iteritems()来修复它。我的问题是:如果South1.0与Python3兼容,为什么会出现这种情况?我的修复会给我带

python - 从 Django 1.6 (with south) 升级到 1.8 不会修改用户表上的 'last_login'

我已从Django1.6.5(带有南迁移)升级到Django1.8。我已按照此处的说明进行操作:https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south所以,我删除了South,删除了我以前的迁移并运行pythonmanage.pymakemigrations这会生成一个新的迁移文件。然后我运行pythonmanage.pymigrate--fake-initial来伪造初始迁移。然后我运行pythonmanage.pymigrate。一切正常,没有错误。我有一个继承AbstractBas

python - Django 是否有像 South 这样的 SQLAlchemy 自动迁移工具?

有没有像SouthforDjango这样的SQLAlchemy自动迁移工具?我查看了sqlalchemy-migrate但它似乎不会自动生成sql更新脚本或升级降级数据库看起来你需要使用sqlalchemy-migratea)手动将旧模型复制到新文件b)在应用程序中创建新模型并将其复制到新文件中c)在pythonsqlalchemy扩展方言中手动编写创建/删除/更改表d)生成sqlalter脚本e)运行命令执行altersql脚本对我来说,它不能解决问题,只会增加开销,因为我可以简单地手动执行d),它会比手动执行a)、b)、c)快得多d)你可以一步到位。是否有任何用于SQLAlchem

python - Django - South - 有没有办法查看它运行的 SQL?

这就是我想要做的。在带有开发数据库的开发服务器上开发Django项目。当我更改模型时,根据需要运行南迁移。保存每次迁移的SQL,并在我准备好部署时将其应用到生产服务器。South这样的事情可能吗?(我也很好奇其他人在使用Django时如何让您的开发数据库更改生产) 最佳答案 您至少可以检查通过执行manage.pymigrate--db-dry-run--verbosity=2生成的sql。这不会对数据库做任何事情,并且会显示所有的sql。不过,我仍然会进行备份,安全总比抱歉好。 关于p

python - 使用 south 重构具有继承的 Django 模型

我想知道Djangosouth是否可以进行以下迁移并且仍然保留数据。之前:我目前有两个应用,一个叫tv,一个叫电影,每个都有一个VideoFile模型(此处简化):tv/models.py:classVideoFile(models.Model):show=models.ForeignKey(Show,blank=True,null=True)name=models.CharField(max_length=1024,blank=True)size=models.IntegerField(blank=True,null=True)ctime=models.DateTimeField(b

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

我一直在South的网站、Google和SO上寻找这个问题的答案,但找不到一个简单的方法来做到这一点。我想使用South重命名Django模型。假设您有以下内容:classFoo(models.Model):name=models.CharField()classFooTwo(models.Model):name=models.CharField()foo=models.ForeignKey(Foo)你想将Foo转换为Bar,即classBar(models.Model):name=models.CharField()classFooTwo(models.Model):name=mod

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

我一直在South的网站、Google和SO上寻找这个问题的答案,但找不到一个简单的方法来做到这一点。我想使用South重命名Django模型。假设您有以下内容:classFoo(models.Model):name=models.CharField()classFooTwo(models.Model):name=models.CharField()foo=models.ForeignKey(Foo)你想将Foo转换为Bar,即classBar(models.Model):name=models.CharField()classFooTwo(models.Model):name=mod

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

我想更改模型中特定字段的名称:classFoo(models.Model):name=models.CharField()rel=models.ForeignKey(Bar)应该改为:classFoo(models.Model):full_name=models.CharField()odd_relation=models.ForeignKey(Bar)使用South最简单的方法是什么? 最佳答案 您可以使用db.rename_column功能。classMigration:defforwards(self,orm):#Rename

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

我想更改模型中特定字段的名称:classFoo(models.Model):name=models.CharField()rel=models.ForeignKey(Bar)应该改为:classFoo(models.Model):full_name=models.CharField()odd_relation=models.ForeignKey(Bar)使用South最简单的方法是什么? 最佳答案 您可以使用db.rename_column功能。classMigration:defforwards(self,orm):#Rename