powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Django 1.7, django.db.utils.ProgrammingError
6 сообщений из 6, страница 1 из 1
Django 1.7, django.db.utils.ProgrammingError
    #38881076
Фотография Vladimir aka jeltoesolnce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Миграция на sqlite проходит нормально. Когда изменяю БД на PostgreSQL, получаю такое сообщение:

Код: sql
1.
2.
    django.db.utils.ProgrammingError: ОШИБКА:  колонку "image_id" нельзя автоматически привести к типу integer
?????????:  Укажите выражение USING, чтобы выполнить преобразование.


Кто может помочь?
...
Рейтинг: 0 / 0
Django 1.7, django.db.utils.ProgrammingError
    #38882012
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir aka jeltoesolnce,

а зачем накатывать миграцию при переходе на другую СУБД? Миграция нужна, когда у тебя проект уже работает, в базе накапливаются данные и вдруг ты изменил модель, в БД нужно применить эти изменения.
У тебя же в PostgreSQL ничего нет, соответственно история изменений тебе не нужна. Начинай миграции в ней заново.
...
Рейтинг: 0 / 0
Django 1.7, django.db.utils.ProgrammingError
    #38884739
Фотография Vladimir aka jeltoesolnce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так. Но в Django 1.7 миграции у них идут изначально, и я переназначаю у исходной модели её поле. Для этого я создаю исходные таблицы инициируя приложение, затем меняю каталог с миграциями на другой, создаю новую модель с абстрактным классом типа:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
from django.db import models
from zinnia.models_bases import entry
from django.conf import settings

from django.utils.translation import ugettext_lazy as _
from photologue.models import Photo, Gallery

class EntryGallery(
          entry.CoreEntry,
          entry.ContentEntry,
          entry.DiscussionsEntry,
          entry.RelatedEntry,
          entry.ExcerptEntry,
          entry.FeaturedEntry,
          entry.AuthorsEntry,
          entry.CategoriesEntry,
          entry.TagsEntry,
          entry.LoginRequiredEntry,
          entry.PasswordRequiredEntry,
          entry.ContentTemplateEntry,
          entry.DetailTemplateEntry):

    image = models.ForeignKey(Photo,
                              blank=True,
                              null=True,
                              default=None)
    gallery = models.ForeignKey(Gallery,
                                blank=True,
                                null=True,
                                default=None)

    def __str__(self):
        return _('EntryGallery %s') % self.title

    class Meta(entry.CoreEntry.Meta):
        abstract = True


и начинаю накатывать новые миграции.

Так вот, когда sqlite - всё ок, когда то же самое пробую сделать на PostgreSQL - вылезает эта ошибка. Инструкция разраба здесь: http://docs.django-blog-zinnia.com/en/develop/how-to/extending_entry_model.html#considerations-about-the-database, вроде бы, всё делаю правильно. Как я понял, поле image_id изначально integer, и его СУБД меняет на другой? То есть, мне руками нужно просто что-то добавить в файл миграции, так что-ли?
...
Рейтинг: 0 / 0
Django 1.7, django.db.utils.ProgrammingError
    #38884770
Григорий Мойшевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir aka jeltoesolnceНо в Django 1.7 миграции у них идут изначально
ИМХО к версии 1.9 ими можно будет пользоваться, а пока старый добрый south
...
Рейтинг: 0 / 0
Django 1.7, django.db.utils.ProgrammingError
    #38884868
Фотография Vladimir aka jeltoesolnce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот она, миграция:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations


class Migration(migrations.Migration):

    dependencies = [
        ('photologue', '0007_auto_20150216_1808'),
        ('zinnia', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='entry',
            name='gallery',
            field=models.ForeignKey(default=None, blank=True, to='photologue.Gallery', null=True),
            preserve_default=True,
        ),
        migrations.AlterField(
            model_name='entry',
            name='image',
            field=models.ForeignKey(default=None, blank=True, to='photologue.Photo', null=True),
            preserve_default=True,
        ),
    ]



Изначально поле image символьное. Станет целочисленным. Мне нужно указать правило USING. Думаю, это USING 0. Как мне указать его в миграции?
...
Рейтинг: 0 / 0
Django 1.7, django.db.utils.ProgrammingError
    #38884885
Фотография Vladimir aka jeltoesolnce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations


class Migration(migrations.Migration):

    dependencies = [
        ('photologue', '0007_auto_20150216_1808'),
        ('zinnia', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='entry',
            name='gallery',
            field=models.ForeignKey(default=None, blank=True, to='photologue.Gallery', null=True),
            preserve_default=True,
        ),
### добавил 
        migrations.RemoveField(
            model_name='entry',
            name='image',
        ),
###
### изменил AlterField на AddField
        migrations.AddField(
            model_name='entry',
            name='image',
            field=models.ForeignKey(default=None, blank=True, to='photologue.Photo', null=True),
            preserve_default=True,
        ),
    ]



Заработало.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Django 1.7, django.db.utils.ProgrammingError
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]