簡體   English   中英

Django遷移:django.db.utils.OperationalError:沒有這樣的列:

[英]Django Migration: django.db.utils.OperationalError: no such column:

每當我在模型中添加新列時,我都會得到:

django.db.utils.OperationalError:否這樣的列:companies_company。[添加的列的名稱]

例如,我剛添加了“ employee_count”,每次運行

python manage.py makemigrations

我得到:

django.db.utils.OperationalError:沒有這樣的列:companies_companyadmin.employee_count

我的model.py看起來像這樣:

from django.db import models

import csv

class Company(models.Model):
   name = models.CharField(max_length=70, blank=True)
   description = models.CharField(max_length=1200, blank=True)
   employee_count = models.IntegerField(blank=True)


class CompanyAdmin(models.Model):
    name = models.CharField(max_length=70, blank=True)
    description = models.CharField(max_length=1200, blank=True)
    employee_count = models.(blank=True)

with open("organizationTest.txt","rU") as f:
        reader = csv.reader(f)
        for row in reader:
            _, created = Company.objects.get_or_create(
                name=row[3].decode('latin-1').encode('utf8'),
                description=row[15].decode('latin-1').encode('utf8'),
                )

CSV部分只是填充我的數據庫(我可能應該在其他地方做)。

和我的admin.py:

from django.contrib import admin
from .models import Company


class CompanyAdmin(admin.ModelAdmin):
    pass


admin.site.register(Company, CompanyAdmin)

當我嘗試運行服務器或“ syncdb”時,也會發生這種情況。

如果有人知道為什么會這樣以及我如何解決這個問題,我很想知道! 提前致謝! 我很高興回答您可能遇到的任何問題。

就我而言,我在更新模型的某些查詢集中具有一個初始值。 當我刪除這些初始聲明時,makemigrations起作用了。

似乎我的原始答案不夠清楚。

Company.objects.get_or_create( name=row[3].decode('latin-1').encode('utf8'), description=row[15].decode('latin-1').encode('utf8'), )

此塊不在類之內,因此它在服務器啟動時或基本上在每次manage.py運行時運行。 Company.objects.get_or_create(...)嘗試在尚未創建的更新數據庫模型上運行。 要進行遷移,您必須先注釋掉這一行,然后進行遷移,然后它才能工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM