【问题标题】:Django syncdb command, can't find column in table it's creatingDjango syncdb 命令,在它正在创建的表中找不到列
【发布时间】:2012-06-01 04:24:34
【问题描述】:

在数据库变得非常混乱之后,我决定从头开始重新启动数据库。所以我删除了数据库,现在尝试用syncdb重新创建它。正如您在下面看到的,它正在创建表 wood_management,因为在木材管理中找不到 wood_uuid,所以它在该表中翻倒了。但是,它还没有做木材管理,所以我很困惑。

Creating table timber_measurement
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "c:\python26\lib\site-packages\django\core\management\__init__.py", line 438, in execute_manager
    utility.execute()
  File "c:\python26\lib\site-packages\django\core\management\__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\python26\lib\site-packages\django\core\management\base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "c:\python26\lib\site-packages\django\core\management\base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "c:\python26\lib\site-packages\django\core\management\base.py", line 351, in handle
    return self.handle_noargs(**options)
  File "c:\python26\lib\site-packages\django\core\management\commands\syncdb.py", line 99, in handle_noargs
    cursor.execute(statement)
  File "c:\python26\lib\site-packages\django\db\backends\util.py", line 15, in execute
    return self.cursor.execute(sql, params)
  File "c:\python26\lib\site-packages\django\db\backends\sqlite3\base.py", line 200, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.DatabaseError: table timber_measurement has no column named timber_uuid

Django 模型:

class TimberMeasurement(models.Model):
    uuid              = UUIDField(primary_key=True)
    timber            = models.ForeignKey(Timber, db_column='timber_uuid',null=True, blank=True, editable=False)
    measurement_value = models.FloatField(null=True, blank=True)
    measurement_type  = models.IntegerField(null=True, blank=True, choices=MEASUREMENT_TYPE, editable=False)

    class Meta:
        app_label = 'boughtin'
        db_table = 'timber_measurement'
        unique_together = ('timber', 'measurement_value', 'measurement_type')

【问题讨论】:

    标签: sql django django-models sqlite


    【解决方案1】:

    在运行新的同步数据库之前,似乎需要执行以下操作

    #unique_together = ('timber', 'measurement_value', 'measurement_type')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-22
      • 2012-05-27
      • 2015-04-11
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      相关资源
      最近更新 更多