python manage.py migrate 登陆错误

Posted

技术标签:

【中文标题】python manage.py migrate 登陆错误【英文标题】:python manage.py migrate landing error 【发布时间】:2014-05-18 10:15:56 【问题描述】:

我想用南迁移我的应用程序“登陆”我写了以下命令

python manage.py migrate 登陆

但它显示以下错误

为登陆运行迁移:

正向迁移到 0003_auto__chg_field_userinput_email2。 登陆:0001_initial

致命错误 - 以下 SQL 查询失败:CREATE TABLE landing_userinput ( id 整数 AUTO_INCREMENT 非空主键,name varchar(120) 非空, email varchar(200) 非空,city varchar(120) 非空,timestamp datetim e 非空)

错误是:(1050,“表'landing_userinput'已经存在”) !在实际运行迁移过程中发现错误!中止。

!由于您有一个不支持运行的数据库 !事务中的模式改变语句,我们有 !使其在迁移之间处于临时状态。

!您可能能够通过以下方式恢复:= DROP TABLE landing_userinput CASCAD E; []

引发错误类,错误值

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

请给我建议以改进此错误。

【问题讨论】:

它表示该表存在以及如何修复它。那是成功还是失败? 【参考方案1】:

不要同时使用syncdbmigrate;这会发生冲突,因为初始迁移会创建一个空白表。

如果您有一个新应用并希望由南管理,您的操作顺序是:

    ./manage.py schemamigration landing --initial -- 这将创建初始迁移,从而为应用程序创建表。您只能这样做一次./manage.py migrate landing -- 这将应用迁移。第一次执行此操作时(使用上面的第 1 步),这将在数据库中创建一个空表。

完成前两个步骤后,无论何时对模型进行更改,都需要运行以下两个命令:

    ./manage.py schemamigration landing --auto -- 这将创建包含模型更改(迁移)的文件。

    ./manage.py migrate landing -- 这将应用新的迁移(这与上面的命令相同);它会影响对数据库的更改。

如果您已经有一个现有的应用程序,安装 south 并运行 syncdb 创建 south 自己的数据库表,然后运行 ​​./manage.py convert_to_south yourappname;这将进行“假”迁移并将其设置为模型的最后状态。然后,按照schemamigration yourappname --automigrate 的步骤操作。

在你的情况下,你有两个选择:

    删除表(如错误所示)。这也将删除所有数据。如果您正在开发中,这是重新开始的最简单方法(如果您想为模型提供一些默认数据,也应该使用 fixtures)。

    您可以使用--fake 选项来欺骗South 以为操作已经完成。请参阅documentation 了解更多信息。

【讨论】:

以上是关于python manage.py migrate 登陆错误的主要内容,如果未能解决你的问题,请参考以下文章

初试django---python manage.py makemigrations以及python manage.py migrate

运行 python manage py migrate 时出错

python manage.py migrate 登陆错误

SyntaxError:Generator表达式必须是parenthezised / python manage.py migrate

尝试在 djangoFramework 项目上运行 python manage.py migrate 但收到错误

Manage.py migrate 在第 14 步“提供数据库”的 Heroku python“入门指南”中失败