好的,所以我正在创建一个 django 应用程序,并且我已经在我的 settings.py 的“INSTALLED_APPS”部分安装了南应用程序。我一直在使用
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 和 migrate 命令后,它说给出了一个错误说
DatabaseError: value too long for type character varying(2)
然后当我这样做的时候
python manage.py runserver
它确实提供了选择,除了“Day”不是默认值,默认值为“1”。然后我添加了“Day”作为选项,并且我更改了 max_length=3,除非现在我这样做了
python manage.py schemamigration myapp --auto
python manage.py migrate myapp
它仍然给出DatabaseError。我又试了一次,当我执行 schemamigration 命令时,它说没有进行任何更改,然后当我尝试执行 migrate 命令时,它仍然给出数据库错误。
我正在考虑从命令行运行 SQL 命令以将“天”的最大长度更新为 3,但是当我查看 PostgreSQL 中的数据库(链接到我的应用程序的数据库)时,它说没有创建“天”列.
任何人都知道如何解决这个问题?