首页 文章

Django postgre迁移错误

提问于
浏览
0

我将数据库后端从sqlite3更改为postgre . 当我尝试运行迁移时出现错误

MacBook-Pro-Oleg:avtofarm okorablev$ python3 manage.py migrate

要执行的操作:同步未迁移的应用程序:消息,avtofarm,smart_selects,staticfiles,thumbnail应用所有迁移:contenttypes,admin,callboard,auth,sessions同步应用程序而不迁移:创建表...运行延迟SQL ...安装自定义SQL . ..运行迁移:渲染模型状态... DONE应用callboard.0004_auto_20150701_1609 ... Traceback(最近一次调用最后一次):文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages / django / db / backends / utils.py“,第64行,执行返回self.cursor.execute(sql,params)psycopg2.ProgrammingError:列”manufdate“无法自动转换为输入日期提示:指定USING表达式执行转换 .

上述异常是以下异常的直接原因:

Traceback(最近一次调用最后一次):文件“manage.py”,第10行,在execute_from_command_line(sys.argv)文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages /django/core/management/init.py“,第338行,在execute_from_command_line utility.execute()文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core /management/init.py“,第330行,执行self.fetch_command(子命令).run_from_argv(self.argv)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages /django/core/management/base.py“,第393行,在run_from_argv self.execute(* args,** cmd_options)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site -packages / django / core / management / base.py“,第444行,执行输出= self.handle(* args,** options)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3 .4 / site-packages / django / core / management / commands / migrate.py“,第221行,在handle executor.migrate中(目标) ,plan,fake = fake,fake_initial = fake_initial)文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/db/migrations/executor.py”,第110行,在迁移self.apply_migration(状态[migration],migration,fake = fake,fake_initial = fake_initial)文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/db/ migrations / executor.py“,第148行,在apply_migration state = migration.apply(state,schema_editor)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/db /migrations/migration.py“,第115行,在apply operation.database_forwards(self.app_label,schema_editor,old_state,project_state)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages / django / db / migrations / operations / fields.py“,第201行,在database_forwards schema_editor.alter_field(from_model,from_field,to_field)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4 /站点包/ djan go / db / backends / base / schema.py“,第484行,在alter_field old_db_params,new_db_params,strict)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django /db/backends/base/schema.py“,第636行,_alter_field params,文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/db/backends/ base / schema.py“,第111行,执行cursor.execute(sql,params)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/db/backends /utils.py“,第79行,在execute return super(CursorDebugWrapper,self).execute(sql,params)File”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/ django / db / backends / utils.py“,第64行,执行返回self.cursor.execute(sql,params)文件”/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages / django / db / utils.py“,第97行,在exit.6.reraise(dj_exc_type,dj_exc_value,traceback)文件”/Library/Frameworks/Python.framework /Versions/3.4/lib/python3.4/site-packages/django/utils/six.py“,第658行,重新提升value.with_traceback(tb)文件”/Library/Frameworks/Python.framework/Versions/3.4 /lib/python3.4/site-packages/django/db/backends/utils.py“,第64行,执行返回self.cursor.execute(sql,params)django.db.utils.ProgrammingError:column”manufdate“无法自动转换为输入日期提示:指定USING表达式以执行转换 .

模型

class Zip(models.Model):
category = models.ForeignKey(Category,null=True,verbose_name='Категория')
subcategory = ChainedForeignKey(SubCategory,chained_field="category",
    chained_model_field="category",
    show_all=False,
    auto_choose=True,verbose_name='Подкатегория')
type = models.ForeignKey(Type,verbose_name='Состояние')
zipgroup = models.ForeignKey(ZipGroup,null=True,verbose_name='Группа запчастей')
ziptype = models.ForeignKey(ZipType,null=True,verbose_name='Вид запчасти')
cartype = models.ForeignKey(CarType,null=True,verbose_name='Тип авто')
carmodel = models.ForeignKey(CarModel,null=True,verbose_name='Модель транспорта')
carbodytype = models.ForeignKey(CarBodyType,null=True,verbose_name='Тип кузова')
catalognumber = models.CharField(max_length=100,null=True,blank=True,verbose_name='Номер по каталогу')
manufdate = models.CharField(max_length=4,null=True,verbose_name='Год выпуска')
title = models.CharField(max_length=100,verbose_name='Заголовок объявления')
description = models.TextField(null=True,verbose_name='Описание')
price = models.IntegerField(verbose_name='Цена')
user = models.ForeignKey(User,verbose_name='Пользователь')
creation_date = models.DateTimeField('date published')
is_sell = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
likes = models.IntegerField(default=0)

2 回答

  • -2

    查看您的迁移代码(适用于包含的应用程序) Zip 型号) . 看起来迁移存在一些问题,因为您收到有关日期转换的错误,而在当前模型中, manufdate 类型为 manufdate 列 .

  • 0

    删除数据库后,问题解决了,制作了新的数据库,又一次做了迁移和迁移 . 但我认为应该是另一种如何在不删除数据库的情况下更好地决定这个问题的方法

相关问题