陷入 django 南迁移 - TransactionManagement 错误

     2023-02-24     214

关键词:

【中文标题】陷入 django 南迁移 - TransactionManagement 错误【英文标题】:Stuck in a django south migration - TransactionManagement error 【发布时间】:2013-08-28 19:41:39 【问题描述】:

我在应用 django 南迁移时遇到问题:

和往常一样,我在模式迁移成功后执行了 migrate 命令

python manage.py migrate webapp

日志控制台:

Running migrations for webapp:
 - Migrating forwards to 0020_auto__add_example.
 > webapp:0020_auto__add_example
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK

该错误与特定迁移无关,好像我向后移动并尝试另一个它显示相同的消息。

编辑。这是查询的日志:

(0.005) SELECT `south_migrationhistory`.`id`, `south_migrationhistory`.`app_name`, `south_migrationhistory`.`migration`, `south_migrationhistory`.`applied` FROM `south_migrationhistory` WHERE `south_migrationhistory`.`applied` IS NOT NULL ORDER BY `south_migrationhistory`.`applied` ASC; args=()
Running migrations for webapp:
 - Migrating forwards to 0020_auto__add_example.
 > webapp:0020_auto__add_example
(0.002) CREATE TABLE ROLLBACK_TEST (X INT); args=()
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK

【问题讨论】:

您可以启用 sql 日志记录并在此处附加结果吗? coderwall.com/p/uzhyca @tuxcanfly,我已经添加了。 谢谢 tuxcanfly。至少我学会了如何在执行 django 查询时记录数据库。 【参考方案1】:

我在 MySQL 实例上使用 Django 1.6 和 South 1.0 时遇到了同样的问题。打开 django.db.backends 记录器后,我意识到迁移卡在以下 SQL 语句上:

DEBUG (0.003) CREATE TABLE ROLLBACK_TEST (X INT); args=None

所以我检查了数据库,果然找到了 ROLLBACK_TEST 表。删除它解决了问题:

$ manage.py dbshell
mysql> DROP TABLE ROLLBACK_TEST;

【讨论】:

【参考方案2】:

当我遇到同样的问题时,我的问题或多或少与 django 有关。我解释一下。

我在控制台中使用不同的选项卡。一个与 django shell 一起使用来测试我的模型,并在另一个选项卡中运行迁移。我在 shell 选项卡中遇到了完整性错误。因此,直到我解决了问题 (see this thread) 或关闭了选项卡,迁移选项卡中的错误仍然存​​在。正如前一个答案所指出的,这与数据库有关,但与数据库无关。

【讨论】:

【参考方案3】:

我刚刚遇到了类似的问题。

MySQL 5.6.13(在 Amazon RDS 上) Django==1.5.4 MySQL-python==1.2.4 南==0.8.2

我在这里完成了几乎所有可能的修复以及无数次谷歌搜索,但运气为零。

我查看了数据库架构,我没有创建名为“ROLLBACK_TEST”的表是架构的一部分。

一旦我删除了那个神秘表,迁移就会完美运行。

此表只能源自 Django、South 或 Amazon 的内部进程,因为没有其他人可以访问。

【讨论】:

我遇到了同样的问题。我中止了迁移,ROLLBACK_TEST 是留在数据库中的表。放下那张桌子告诉 South 一切正常。 请注意,如果您的数据库用户没有删除权限,您可能会遇到此问题【参考方案4】:

我也遇到了同样的问题,头疼了一阵子。 事实证明我的(MySQL)数据库用户没有足够的权限。 我为用户分配了:ALTER、CREATE、DELETE、DROP、INDEX、INSERT、SELECT、UPDATE,一切正常。

【讨论】:

【参考方案5】:

我遇到了同样的问题,对我来说,解决方案只是将我的 sqlite development.db 文件的正确权限授予正在执行 python manage.py migrate webapp 命令的用户。我拥有www-data 拥有的文件,因此无法处理该文件。

【讨论】:

【参考方案6】:

我正在写我遇到的问题的答案,因为它可能对某人有用。

经过一段时间的调试,我发现问题与django无关。这是数据库和托管它的虚拟机的问题。

我重新启动了数据库机器,现在迁移工作正常。

【讨论】:

Django 1.7 内置迁移与南迁移?

】Django1.7内置迁移与南迁移?【英文标题】:Django1.7builtinmigrationsvsSouthmigrations?【发布时间】:2014-12-2116:38:45【问题描述】:我已经在问题中检查了这个问题,但找不到任何关于Django构建迁移的简单解释,或者-它们足够可靠吗?... 查看详情

测试使用南迁移的 Django 应用程序

】测试使用南迁移的Django应用程序【英文标题】:TestingDjangoappsthatuseSouthmigrations【发布时间】:2011-07-3103:53:12【问题描述】:我正在尝试为使用South迁移的Django应用创建一些功能测试。最终,我还将创建Twill测试。当我尝试运行... 查看详情

使用南(django)和 MySQL 进行模式迁移

】使用南(django)和MySQL进行模式迁移【英文标题】:Schemamigrationwithsouth(django)andMySQL【发布时间】:2011-12-0706:25:12【问题描述】:我只是在浏览一个关于django的教程,并且我遵循了每一步,但每次尝试迁移时仍然出现此错误:初... 查看详情

Django 南迁移 - 添加 FULLTEXT 索引

】Django南迁移-添加FULLTEXT索引【英文标题】:Djangosouthmigration-AddingFULLTEXTindexes【发布时间】:2011-07-2420:00:21【问题描述】:我需要在我的Django模型的一个字段中添加FULLTEXT索引,并且了解没有内置功能可以执行此操作,并且必须... 查看详情

南迁移错误:django.contrib.auth 的 NoMigrations 异常

】南迁移错误:django.contrib.auth的NoMigrations异常【英文标题】:Southmigrationerror:NoMigrationsexceptionfordjango.contrib.auth【发布时间】:2011-02-2004:51:03【问题描述】:我在我的项目中使用South已经有一段时间了,但我最近做了大量的开发并... 查看详情

如何在南迁移期间调用 django 模型类的静态方法

】如何在南迁移期间调用django模型类的静态方法【英文标题】:Howtocallastaticmethodsonadjangomodelclassduringasouthmigration【发布时间】:2011-03-1920:31:30【问题描述】:我正在南方编写数据迁移,以修复我在早期代码中搞砸的一些非规范化... 查看详情

django 和南迁移有冲突(0007_two ... and 0007_one)怎么解决?

】django和南迁移有冲突(0007_two...and0007_one)怎么解决?【英文标题】:djangoandsouthmigrationwithconflicts(0007_two...and0007_one)howtosolve?【发布时间】:2010-11-2915:23:09【问题描述】:我想在我的django项目中使用south作为迁移工具,但在多用... 查看详情

南迁移错误 - 关系已经存在

...sts【发布时间】:2013-02-0419:45:54【问题描述】:背景:将djangoatings添加到我的项目后,我尝试运行django-admin.pyschemamigrationdjangoratings--initial--settings=myapp.settings.local导致架构迁移出现未知命令错误。我 查看详情

Django模型南0.7.6迁移问题:表中的任何更改与另一个字段的默认值百分比

】Django模型南0.7.6迁移问题:表中的任何更改与另一个字段的默认值百分比【英文标题】:Djangomodelsouth0.7.6migrationproblems:Anychangeinatablewithanotherfieldwithpercentageindefaultvalue【发布时间】:2012-09-1521:42:58【问题描述】:在我的数据库模... 查看详情

django 手写迁移更改身份验证

】django手写迁移更改身份验证【英文标题】:djangohandwrittenmigrationsalteringauth【发布时间】:2015-10-0120:14:33【问题描述】:我正在使用django1.8.1并尝试从我的一个应用程序中扩展auth_username字段的长度。之前,对于南,我可以使用如... 查看详情

Django:迁移错误中的加载数据

】Django:迁移错误中的加载数据【英文标题】:Django:loaddatainmigrationserrors【发布时间】:2015-12-3022:56:19【问题描述】:自从使用Django迁移(不是南)并使用loaddata作为其中的固定装置以来,我发生了一些非常烦人的事情。这是重... 查看详情

从 South 迁移到 Django 1.7 迁移:可交换依赖项

】从South迁移到Django1.7迁移:可交换依赖项【英文标题】:MovingfromSouthtoDjango1.7migrations:swappabledependency【发布时间】:2015-04-1209:04:06【问题描述】:我有一个用Django1.6编写的项目,它使用南迁移,我试图将它移到Django1.7。所以我... 查看详情

为啥 django 1.7 会为字段选择的变化创建迁移?

】为啥django1.7会为字段选择的变化创建迁移?【英文标题】:Whydoesdjango1.7createsmigrationsforchangesinfieldchoices?为什么django1.7会为字段选择的变化创建迁移?【发布时间】:2014-11-2623:00:36【问题描述】:我在1.7版中观察到了这种行为... 查看详情

南迁移 DateField 到 IntegerField

】南迁移DateField到IntegerField【英文标题】:SouthmigrateDateFieldtoIntegerField【发布时间】:2014-04-2006:20:18【问题描述】:我想改变我的模型classSource(models.Model):release_date=models.DateField()到classSource(models.Model):release_date=models.IntegerF 查看详情

巩固 Django South Migrations

】巩固DjangoSouthMigrations【英文标题】:ConsolidatingDjangoSouthMigrations【发布时间】:2012-12-2321:06:53【问题描述】:在我的项目的初始阶段,我对模型进行了很多更改,因此我最终为我的应用程序生成了很多南迁移。在去我的生产服... 查看详情

如果 Django 中已经存在某些表,如何强制迁移到数据库?

...ython/Django项目。由于一些回滚和其他混合因素,我们最终陷入了一种奇怪的情况。目前的场景是这样的:DB有正确的表数据库无法回滚或删除代码是最新的Migrations文件 查看详情

django south 在多个数据库上

】djangosouth在多个数据库上【英文标题】:djangosouthonmultipledatabases【发布时间】:2013-03-2506:20:13【问题描述】:我为我的django项目使用了两个环境,开发和生产。我主要从事开发工作,当我更改模型中的字段时,我使用南迁移到... 查看详情

运行单元测试时禁用 Django South?

】运行单元测试时禁用DjangoSouth?【英文标题】:DisableDjangoSouthwhenrunningunittests?【发布时间】:2011-08-1311:54:42【问题描述】:在在进行django单元测试时如何避免运行所有的南迁移?【问题讨论】:我想知道为什么这很重要?执行... 查看详情