【问题标题】:Django Is telling me table already exists on syncdb - can't figure out whyDjango 告诉我表已经存在于 syncdb - 不知道为什么
【发布时间】:2010-11-20 00:09:07
【问题描述】:

将模型发布到http://pastebin.com/f609771cc

出现错误:(是的,它是 Windows) 默认错误处理程序中的文件“C:\Python25\lib\site-packages\MySQLdb\connections.py”,第 35 行 引发错误类,错误值 _mysql_exceptions.OperationalError: (1050, "表 'memorial_music' 已经存在")

扫描了整个项目目录,memorial_music 只被引用了两次

一次作为表名,一次作为表名'memorial_music_category'

这个让我摸不着头脑,有什么想法吗?

【问题讨论】:

  • 忘了说:我在运行syncdb之前删除了所有的纪念表......有什么想法吗?
  • 如果你在windows上使用mysql,那么很可能你的问题是mysql。在windows mysql中,默认情况下,mysql以小写字母保存表名。解决方案是用小写字母命名你的模型类或在模型类的末尾给出以下class Meta:db_table = u'table_name' 记住table_name应该是小写字母

标签: django django-syncdb


【解决方案1】:

django-mptt 是罪魁祸首

将memorial_music 的表重命名为memorial_music_library,一切顺利

感谢 django 提供的 manage.py sqlall appname

【讨论】:

    【解决方案2】:

    作为 Django 新手,我一直遇到同步数据库问题。每次我运行它时,我都会得到错误**表已经存在。在无济于事地搜索答案并一遍又一遍地阅读 syncdb 之后:“为 INSTALLED_APPS 中尚未创建表的所有应用程序创建数据库表。”。我终于意识到,当我做最初的 python manage.py startapp UserData .... UserData 的大写把 Django 搞乱了(我正在使用 MYSQL)。如果将其称为 userData,我就不会有任何问题。我希望这可以帮助有同样问题的人。

    编辑**

    也许这不是大写的问题,我认为在 Django 中命名一个名为 userData 的表总体上是行不通的。

    【讨论】:

      【解决方案3】:

      我今天也有同样的问题。 确保所有项目文件夹名称都是小写的。我想一切都会好起来的。

      【讨论】:

        【解决方案4】:

        抱怨是该表已经存在于数据库中。 Django 无法更新现有表。您要么需要从 MySQL 数据库中删除表,然后再次同步数据库,要么手动将表架构调整为模型。

        【讨论】:

          猜你喜欢
          • 2021-12-22
          • 2012-04-29
          • 2022-01-23
          • 1970-01-01
          • 2015-07-14
          • 2012-05-23
          • 1970-01-01
          • 2013-12-29
          • 1970-01-01
          相关资源
          最近更新 更多