好吧,所以我创建一个django应用程序,我已经在我的settings.py中'INSTALLED_APPS'部分安装了南应用程序。我一直在使用django南迁移没有更新数据库
python manage.py schemamigration myapp --auto
python manage.py migrate testapp
命令,他们一直在完美地工作,直到最近,对我的模型做出了改变。
class Users(models.Model):
days = (('1', '1'), ('2', '2'),)
day = models.CharField(verbose_name='', max_length=1, default='Day')
现在,你可以看到,我在这里犯了两个错误。首先,我将默认值设置为'Day',但它甚至不是变量'days'中的选项。我还说过,max_length = 1,默认值是3位数字。运行schemamigration和迁移命令后,说了一个错误说
DatabaseError: value too long for type character varying(2)
,然后当我做
python manage.py runserver
它便从选择除了“天”是不是默认,默认为'1'。 我加入“日”作为选择,我改变了MAX_LENGTH = 3除了现在当我做
python manage.py schemamigration myapp --auto
python manage.py migrate myapp
它仍然是给DatabaseError。我再次尝试了它,当我执行schemamigration命令时,它说没有做任何更改,然后当我尝试执行迁移命令时,它仍会给出数据库错误。
我正在考虑从命令行运行SQL命令来将'days'的最大长度更新为3,但是当我在PostgreSQL中查看数据库时(数据库链接到我的应用程序)它表示没有'天“栏创建。
任何人有关于如何解决这个问题的想法?
你可以在做出更改后显示源代码,包括您正在使用的选项部分吗?这可能有帮助。你可以检查你的数据库(例如使用sqliteman或你喜欢的工具)并检查表格布局的实际情况。 – OBu